ESLint 是一个用来识别 ECMAScript/JavaScript 代码并且按照规则给出报告的代码检测工具。代码检测是一种静态的分析,用于寻找代码中的错误,而且并不依赖于某样具体的编码风格,很多编程语言的代码检测工具都集成在编译程序中,但 JavaScript 由于易出错且没有编译程序,所以 ESLint 是一个不可或缺的工具。
近日,ESLint 官网正式发布了 ESLint v7.0.0,在版本更新的声明中,ESLint 重点强调了 ESLint v7.0.0 不再支持 Node.js v8 这件事,此外还表示此版本中进行了一些重大更改,并附上了一份迁移指南:
https://eslint.org/docs/user-guide/migrating-to-7.0.0
此次 ESLint v7.0.0 的重大更新包括:
核心规则变更弃用了核心中的 Node.js / CommonJS 十条规则,并移至 eslint-plugin-node 插件。
更新一些规则,用来识别 bigint 文本,同时在默认情况下对更多情况发出警告。
eslint:recommended 更新了一些新的规则:no-dupe-else-if,no-import-assign,和 no-setter-return。
默认的忽略模式(IgnorePatterns)已经更新。在默认情况下,ESLint 将不再忽略 .eslintrc.js 和 bower_components/*。此外,现在的默认情况下,它将忽略嵌套的 node_modules 目录。
如果在 overrides [].files 中显式定义了扩展名不是.js 的文件,ESLint 现在将对它们进行整理,不再需使用 --ext 进行标记。
ESLint 将支持指令注释中的描述,因此可以清楚地记录禁用注释等内容。
将附加验证添加到 RuleTester 类中,以改善对插件中自定义规则的测试。
ESLint 现在将解析与条目配置文件相关的插件,意味着位于项目外部的共享配置文件现在可以与所需的插件并置在一起。
从 ESLint v7 开始,分别使用 --config path/to/a-config 和 --ignore-path path/to/a-ignore CLI 标志传递给 ESLint 的配置文件和忽略文件,同时也将从当前工作目录中解析, 而不是文件位置。带来的好处就是开发者可以使用共享插件,不必再在其项目中安装了。
在此次更新中,CLIEngine 类提供了一个同步的 API,该 API 阻碍了一些功能的实现,比如并行 lint、在可共享的 configs/parsers/plugins/formatter 中支持 ES 模块以及增加了可视化显示 lint 运行进度的功能。新的 ESLint 类提供了一个异步 API。目前来说,CLIEngine 将继续保持核心地位,但将来的版本中可能会被移除。
新特性f9774ec New: 新增 default-case-last 规则(修复#12665)(#12668)(Milos Djermanovic)
a1d999c New: 新增 no-useless-backreference 规则(修复#12673)(#12690)(Milos Djermanovic)
985dac3 New: 新增 no-restricted-exports 规则(修复#10428)(#12546)(Milos Djermanovic)
https://eslint.org/blog/2020/05/eslint-v7.0.0-released