我们刚刚推出了ESLint v7.0.0,这是ESLint的主要版本升级。此版本添加了一些新功能,并修复了前一个版本中发现的几个错误。此版本也有一些突破性的变化,因此请仔细阅读以下内容。
7.0.0中有几个突破性的更改。我们已经创建了一个迁移指南来解释突破性的更改并描述如何升级。
Node.js 8在2019年12月达到EOL,我们将在此版本中正式取消对它的支持。
CORE中的10个Node.js/CommonJS规则已被弃用,并移至eslint-plugin-node插件。
默认情况下,几个规则已经更新,可以识别Bigint文字并在更多情况下发出警告。
默认忽略模式已更新。默认情况下,ESLint将不再忽略.eslintrc.js和Bower_component/*。此外,在默认情况下,它现在将忽略嵌套的node_module目录。
如果在overrides[].files中显式定义了扩展名不是.js的文件,ESLint现在将链接这些文件--不需要使用--ext标志!
ESLint现在支持指令注释中的描述,因此现在可以清楚地记录禁用注释之类的事情!
RuleTester类中添加了额外的验证,以改进插件中的自定义规则测试。
ESLint现在将解析与入口配置文件相关的插件。这意味着位于项目外部的共享配置文件现在可以与它们所需的插件放在同一位置。
从ESLintv7开始,分别使用--config path/to/a-config和--Ignore-path path/to/a-Ignore CLI标志传递给ESLint的配置文件和忽略文件将从当前工作目录而不是文件位置解析。这允许用户使用共享插件,而不必将其直接安装到他们的项目中。
CLIEngine类提供了一个同步API,它阻止了并行链接等功能的实现,在可共享的配置/解析器/插件/格式化程序中支持ES模块,并添加了可视化显示链接运行进度的功能。新的ESLint类提供了一个异步API,ESLint内核现在将使用该API。在可预见的未来,CLIEngine将保留在核心中,但在未来的主要版本中可能会被删除。
4af06fc中断:RuleTester中具有未知错误属性的测试应失败(#12096)(Milos Djermanovic)。
8f1020f更新:no-void添加一个选项以允许void作为语句(#12613)(布拉德·扎切尔)。
29f32db修复:更改隐式文件忽略的错误消息逻辑(修复#12873)(#12878)(斯科特·哈丁)。
afde78b修复:Curly删除if和Else之间的必要花括号(修复#12928)(#12943)(Milos Djermanovic)。
691d19a杂务:添加缺少的ecmaVersion2020/11年类型值(#12833)(Piotr Błażejesicz(Peter Blazejesicz))