ESLint 和 Prettier 配合使用

CSDN 中文章不一定能及时更新,欢迎点击前往我的博客查看最新版本:许盛的博客

ESLint 是一款 Lint 工具,包含了代码质量检查等等。

而 Prettier 仅仅只是一个代码风格的约束工具,对于代码可能产生的 Bug 等并不关心。

虽然说 ESLint 其实也具备一定的代码风格的格式化能力,但是在实践中,我们一般采用 ESlint 来做代码质量的约束,用 Prettier 来做代码风格的约束。

那么如何避免两者规则不一致导致的冲突?以及如何将两者更好的整合起来使用呢?

规则冲突

当 ESLint 的规则和 Prettier 的规则相冲突时,就会发现一个尴尬的问题,用其中一种来格式化代码,另一种就会报错。

prettier 官方提供了一款工具 eslint-config-prettier 来解决这个问题。

本质上这个工具其实就是禁用掉了一些不必要的以及和 Prettier 相冲突的 ESLint 规则。

安装依赖:

npm install --save-dev eslint-config-prettier

修改 eslintrc 文件

// 在 extends 部分加入 prettier 即可
{
  "extends": [
    "...",
    "prettier"
  ]
}

整合使用

上面介绍的工具,仅仅只是将部分 ESLint 规则给禁用了,避免 Prettier 格式化之后的代码导致 ESLint 报错而已,如何将两者结合起来使用呢?

prettier 官方提供了一个 ESLint 插件 eslint-plugin-prettier

这个插件的主要作用就是将 prettier 作为 ESLint 的规则来使用,相当于代码不符合 Prettier 的标准时,会报一个 ESLint 错误,同时也可以通过 eslint --fix 来进行格式化。

例如:

409UW8.png

这样就相当于将 Prettier 整合进了 ESLint 中。

安装依赖:

npm install --save-dev eslint-plugin-prettier
npm install --save-dev prettier

修改 eslintrc 文件

{
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error"
  }
}

简化配置

经过上面两步配置后, ESLint 的配置文件大概如下:

 {
  "extends": [
    "prettier"
  ],
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error"
  }
}

其实可以简化一下,直接 extend 一下 plugin:prettier/recommended 即可。

如下:

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

上面这行配置,实际上相当于:

{
  "extends": ["prettier"],
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error",
    "arrow-body-style": "off",
    "prefer-arrow-callback": "off"
  }
}

可以参考文档:https://github.com/prettier/eslint-plugin-prettier#recommended-configuration

总结

总结一下,将 ESLintPrettier 整合起来使用,其实非常简单。

1. 安装依赖

npm i --save-dev prettier
npm i --save-dev eslint-plugin-prettier eslint-config-prettier

2. 修改配置

{
  "extends": [
		"plugin:prettier/recommended" // 添加到数组的最后一个元素
	]
}

相关链接:

### 配置 ESLint Prettier 共同使用 为了使 ESLint Prettier 能够协同工作,确保代码既符合编码标准又保持一致的风格,可以按照如下方法进行配置。 #### 安装必要的依赖包 首先,在项目中安装 `eslint`、`prettier` 及其集成插件: ```bash npm install eslint prettier eslint-config-prettier eslint-plugin-prettier --save-dev ``` 这一步骤引入了核心工具以及用于调整两者之间冲突规则的支持库[^1]。 #### 创建或更新 `.eslintrc.json` 文件 创建或编辑项目的根目录下的 `.eslintrc.json` 文件来定义 ESLint 的配置选项。加入以下内容以启用 Prettier 插件并禁用可能与之冲突的内置格式化规则: ```json { "plugins": ["prettier"], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", // 如果使用 TypeScript,则添加此行 "plugin:prettier/recommended" ], "rules": { "prettier/prettier": "error" } } ``` 上述设置通过扩展推荐的基础配置并将 Prettier 设置为强制执行项,从而实现了两者的良好协作[^2]。 #### 添加 Prettier 配置文件 在同一级别下创建名为 `.prettierrc` 或者在 package.json 中增加 `"prettier"` 字段来自定义 Prettier 行为。例如: ```json // .prettierrc { "semi": true, "singleQuote": false, "printWidth": 80 } ``` 这些参数控制着诸如分号使用与否、单双引号偏好等具体细节。 #### 自动修复命令 为了让开发者更方便地应用这两个工具的功能,可以在 `package.json` 中定义脚本以便于运行自动修复功能: ```json "scripts": { "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}' --fix", "format": "prettier --write '**/*.{js,css,json,md}'" }, ``` 这样就可以分别通过 `npm run lint` 来修正语法问题,并利用 `npm run format` 对指定类型的文件实施统一格式化操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值