1. 配置方式

  • 注释形式:使用 JavaScript 注释将配置信息直接嵌入到文件中

  • 文件形式

    • .eslintrc.js

    • .eslintrc.yaml 或者 .eslintrc.yml

    • .eslintrc.json

    • package.json 文件中创建 eslintConfig 属性

.eslintrc.js

  1. module.exports = {
  2. root: true,
  3. parser: 'babel-eslint',
  4. parserOptions: {
  5. sourceType: 'module'
  6. },
  7. env: {
  8. browser: true,
  9. },
  10. extends: 'standard',
  11. plugins: [
  12. 'html'
  13. ],
  14. 'rules': {
  15. // allow paren-less arrow functions
  16. 'arrow-parens': 0,
  17. 'semi': 0,
  18. // allow async-await
  19. 'generator-star-spacing': 0,
  20. // allow debugger during development
  21. 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
  22. }
  23. };

.eslintrc.json 文件

  1. {
  2. "parserOptions": {
  3. ...
  4. },
  5. "env": {
  6. ...
  7. },
  8. "globals": {
  9. ...
  10. }
  11. "rules": {
  12. ...
  13. }
  14. }

.eslintrc.yml 文件

  1. ---
  2. parserOptions
  3. ...
  4. env:
  5. ...
  6. globals:
  7. ...
  8. rules:
  9. ...

package.json 文件中

  1. {
  2. "name": "mypackage",
  3. "version": "0.0.1",
  4. "eslintConfig": {
  5. "plugins": ["example"],
  6. "env": {
  7. "example/custom": true
  8. }
  9. }
  10. }

注意:配置文件如果在主目录下,那么会先使用与文件就近的配置文件,找不到其他的配置文件,最后才使用主目录下的配置文件。

主要配置信息有:

  • 环境(Environments):脚本设计运行的环境。每个环境都带有一组预定义的全局变量。

  • 全局变量(Globals) :脚本在执行期间访问的其他全局变量。

  • 规则(Rules):启用了哪些规则以及错误级别。

2. 解析器 parser

  1. module.exports = {
  2. parser: 'babel-eslint', //解析器
  3. parserOptions: {
  4. sourceType: 'module'
  5. } //解析器选项
  6. }

3. 环境 env

环境有浏览器 bower,Node 环境 node 等等

  1. module.exports = {
  2. env: {
  3. browser: true
  4. }
  5. }

官网上查找所有环境

4. 全局变量 global

在 JavaScript 文件中使用注释来指定全局变量,请使用以下格式:

  1. /* global var1, var2 */

这定义了两个全局变量,var1var2。如果你想有选择地指定这些全局变量不应该被写入(只读),那么你可以设置每个 false 标志:

  1. /* global var1:false, var2:false */

在配置文件中配置全局变量,请使用 globals 键并指示要使用的全局变量。将每个全局变量名称设置为等于 true (允许覆盖变量)或 false (禁止覆盖)。例如:

  1. module.exports = {
  2. globals: {
  3. "var1": true,
  4. "var2": false
  5. }
  6. }

注意:启用 no-global-assign 规则禁止修改代码中的只读全局变量。

5. 插件 plugins

ESLint 支持使用第三方插件。在使用插件之前,您必须使用 npm 来安装它。

要在配置文件中配置插件,使用 plugins 包含插件名称,两种写法

  1. module.exports = {
  2. plugins: [
  3. "plugin1",
  4. "eslint-plugin-plugin2"
  5. ]
  6. }

注意:由于 Node 的 require 功能,全局安装的 ESLint 实例只能使用全局安装的 ESLint 插件,本地安装的版本只能使用本地安装的插件。不支持混合本地和全局插件。

6. 规则 rules

要更改规则设置,您必须将规则 ID 设置为以下值之一:

  • off 或者 0: 关闭该规则

  • warn 或者 1: 将规则打开为警告(不影响退出代码)

  • error 或者 2: 将规则打开为错误(触发时退出代码为 1

  1. module.exports = {
  2. rules: {
  3. "eqeqeq": "off",
  4. "curly": "error",
  5. "quotes": ["error", "double"]
  6. }
  7. }

参考

配置ESLint