Eslint和Prettier的配置与冲突处理

前言
统一的前端开发规范,可有助于代码质量提升与团队协作效率提高。通常做法是eslint与prettier的配合进行实现。

  • eslint中包含三类规则:代码质量检查、代码错误检查、代码风格检查
  • prettier包含:代码风格检查

代码风格部分会冲突,我们会对冲突部分进行处理

Eslint

  1. 安装
npm i eslint -D
npm init @eslint/config

按照提示完成初始配置,生成.eslintrc.json配置文件

  1. 使用
  • 通过命令的形式修复代码
npx eslint . --fix
  • vscode插件,使得vscode调用eslint能力,实现实时问题提示,以及保存触发修复

插件安装后,修改vscode配置文件setting.json

"editor.codeActionsOnSave": { 
  "source.fixAll.eslint": "explicit" // 保存使用eslint进行修复
}

Prettier

eslint的代码格式做的不够彻底,需要prettier进行增强。并且prettier支持更多的文件格式的格式化。

  1. 安装
npm i prettier -D

配置.prettierrc.json

2. 使用

  • 通过命令的形式修复代码
npx prettier --write . 
  • vscode插件,使得vscode调用prettier能力,实现保存触发修复

插件安装后,修改vscode配置文件setting.json

"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",

冲突处理
在进行上述配置后,vscode中保存后,出现风格规则不一致,eslint报错问题,现在来解决冲突

1、关掉与Prettier产生冲突的ESlint格式相关配置

使用eslint-config-prettier这个规则集,关闭eslint和prettier冲突的规则设置

npm i eslint-config-prettier -D

.eslintrc.json加入perttier规则集

{
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier" // 覆盖eslint格式配置,写在最后
  ],
}

2、不再单独运行prettier,将prettier集成到eslint中,作为一项rule进行提示与修复

使用eslint-plugin-prettier这个插件

npm i eslint-plugin-prettier -D

.eslintrc.json加入perttier插件

{
  "plugins": ["@typescript-eslint", "prettier"], // 注册插件
    "rules": {
      "prettier/perttier": "error", // 加入prettier规则
    }
}

将上面1、2这两个步骤合在一起就是下面的配置,也是官方的推荐配置

{
  "extends": ["plugin:prettier/recommended"]
}

plugin:prettier/recommended帮我们做了如下事情:

{
  "extends": ["prettier"], // 使用eslinst-config-prettier中的配置项
  "plugins": ["prettier"], // 注册该prettier插件
  "rules": {
    "prettier/prettier": "error", // 在eslint中运行prettier,并启用该插件提供的规则
    "arrow-body-style": "off", // 关闭规则
    "prefer-arrow-callback": "off" // 关闭规则
  }
}

总结

eslint 和 prettier 配置使用需要进行如下操作:

  1. 首先下载 eslint, prettier, eslint-config-prettier, eslint-plugin-prettier
npm install --save-dev eslint prettier eslint-config-prettier eslint-plugin-prettier

项目根目录添加 .eslintrc.js 和 .prettierrc

// .eslintrc.json
{
  "extends": ["plugin:prettier/recommended"]
}
// .prettierrc.json
{
  "singleQuote": true // 根据需要配置
}

补充 :ESLint依赖包从 v8.53.0 起,将弃用代码风格相关规则

补充:VSCode插件ESLint从2.0.0起弃用"eslint.autoFixOnSave"配置,用"editor.codeActionsOnSave"替代

补充:详细文档:彻底搞懂ESLint与Prettier在vscode中的代码自动格式化_editor.defaultformatter-CSDN博客

### 如何配置 ESLint Prettier 实现代码规范检查格式化 #### 安装必要的依赖包 为了使ESLintPrettier协同工作,在项目中需安装一系列必需的npm包。这包括`eslint`, `prettier`, `eslint-plugin-prettier`以及`eslint-config-prettier`等工具。 对于React项目的具体操作命令如下所示: ```bash npm install eslint prettier eslint-plugin-react eslint-plugin-prettier eslint-config-prettier --save-dev ``` 而对于采用Vue3加Vite框架并结合TypeScript开发的应用,则应执行下面这条指令来获取所需资源[^2]: ```bash npm install eslint prettier eslint-plugin-vue @vue/eslint-config-typescript eslint-plugin-prettier eslint-config-prettier --save-dev ``` #### 修改 `.eslintrc.js` 文件 为了让两者更好地协作,应当调整`.eslintrc.js`文件中的设置项。通过引入`'plugin:prettier/recommended'`规则集,可以让ESLint遵循Prettier定义好的样式指南;而加入`'eslint-config-prettier'`则有助于消除二者间可能存在的冲突之处[^1]。 以下是适用于大多数情况下的基本配置示例: ```javascript module.exports = { extends: [ 'react-app', 'airbnb', // 或者其他你喜欢的基础风格指引 'plugin:@typescript-eslint/recommended', // 如果使用 TypeScript 的话 'plugin:prettier/recommended' ], plugins: ['@typescript-eslint'], rules: { ...require('eslint-config-prettier').rules, ... } }; ``` #### 设置编辑器行为 为了让开发者获得更好的体验,可以在IDE或文本编辑器内开启某些特性。例如Visual Studio Code可以通过修改用户/工作区级别的settings.json文件达到目的。这里建议关闭默认的保存即格式化功能(`"editor.formatOnSave"`设为false),转而在每次保存文档时触发一次全面修正动作(`"editor.codeActionsOnSave.source.fixAll.eslint"`设为true)[^4]。 ```json { "editor.formatOnSave": false, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, } ``` 以上就是针对不同技术栈下如何配置ESLintPrettier共同作用的方法介绍。这样做不仅能够保证团队内部成员提交相同质量水平上的源码片段,而且也提高了整体可读性维护效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值