Skip to content

Latest commit

 

History

History
108 lines (75 loc) · 3.77 KB

忽略 ESLint 中的行和文件.md

File metadata and controls

108 lines (75 loc) · 3.77 KB

忽略 ESLint 中的行和文件

ESLint 根据预定义的规则分析代码以发现问题。然而,有时你需要打破 ESLint 规则。ESLint 支持几种机制来忽略代码中的规则冲突

  • 使用注释,可以禁用行或代码块的某些规则。
  • 使用 .eslintignore 文件
  • 另外,如果您想忽略所有文件的某些语法规则,可以使用 ESLint 配置文件禁用规则。

使用注释禁用 ESLint

ESLint 允许您使用 /* eslint */ 注释禁用单个 lint 规则。例如,许多 ESLint 规则不允许使用 JavaScript 的 eval() 函数,因为 eval() 有几个安全问题。但是,如果您确实确定要允许 eval(),可以按如下方式禁用 lint 规则:

const res = eval('42') // eslint-disable-line no-eval

// eslint-disable-line 注释仅对该行禁用 no-eval 规则。

您还可以使用 /* eslint-disable */,禁用整个功能块的 no-eval 规则。

function usesEval() {
  /* eslint-disable no-eval */
  const res = eval('42')
  const res2 = eval('test')

  return res2 + res
}

如果将 /* eslint-disable no-eval */ 放在 .js 文件中的任何代码之前,这将禁用整个文件的 no-eval 规则。

您还可以通过将 /* eslint-disable */ 置于文件顶部来禁用所有 ESLint 规则。

使用 .eslintignore

您可以使用注释来禁用文件的所有 ESLint 规则,但通常不鼓励这样做。如果您确定要让 ESLint 忽略一个文件,通常最好将其列在项目根目录中的 .eslintignore 文件中。

.eslintignore 语法类似于 .gitignore。要忽略文件 myfile.js,您只需将以下行添加到 .eslintignore

myfile.js

ESLint 支持通配文件。要忽略所有以 .test.js 结尾的文件,您可以将这一行行添加到 .eslintignore 中:

*.test.js

ESLint 认为 .eslintignore 中的路径相对于 .eslintignore 文件的位置。以下是忽略项目 data 目录中所有文件的方法。

data/*

您也可以在 package.json 中通过 eslintIgnore 字段配置需要忽略的文件。

{
  "eslintIgnore": ["hello.js", "world.js"]
}

这通常在 ESLint 找不到根目录的 .eslintIgnore 文件且未指定替代文件时,才会查找 package.jsoneslintIgnore 字段检查要忽略的文件。

ESLint 配置文件

配置文件中的 ignorePatterns

您可以告诉 ESLint 在配置文件中使用 ignorePatterns 忽略特定的文件和目录。

{
  "ignorePatterns": ["temp.js", "**/vendor/*.js"],
  "rules": {
    // ...
  }
}

ignorePatterns 模式遵循与 .eslintignore 相同的规则,但优先级低于 .eslintignore

全局禁用规则

可以在 .eslintrc.js 文件单独配置全局禁用规则。

{
  "rules": {
    "no-eval": 0
  }
}

您也可以在 package.jsoneslintConfig 字段配置禁用规则,如下所示:

{
  "eslintConfig": {
    "rules": {
      "no-eval": 0
    }
  }
}

完整的内容请查阅 Ignoring Code