ESLint v7.0.0 发布

我们刚刚发布了 ESLint v7.0.0,这是一个 ESLint 的主要版本升级。此版本添加了一些新功能,并修复了之前版本中发现的几个错误。此版本也有一些破坏性更改,因此请仔细阅读以下内容。

亮点

7.0.0 版本中有几处破坏性更改。我们创建了一个 迁移指南,以解释这些破坏性更改,并描述如何升级。

放弃支持 Node.js v8

Node.js 8 于 2019 年 12 月达到 EOL(生命周期结束),我们在本版本中正式放弃对其支持。

核心规则变更

  • 核心中的十个 Node.js/CommonJS 规则已被弃用,并已移至 eslint-plugin-node 插件。
  • 一些规则已更新,以识别 bigint 字面量,并在更多情况下默认发出警告。
  • eslint:recommended 已更新,添加了一些新规则:no-dupe-else-ifno-import-assignno-setter-return

改进的开发者体验

  • 默认忽略模式已更新。ESLint 默认将不再忽略 .eslintrc.jsbower_components/*。此外,现在默认会忽略嵌套的 node_modules 目录。
  • 如果文件扩展名在 overrides[].files 中显式定义,ESLint 现在将对扩展名不是 .js 的文件进行 lint 检查 - 无需使用 --ext 标志!
  • ESLint 现在支持指令注释中的描述,因此诸如禁用注释之类的内容现在可以被清晰地记录下来!
  • 已向 RuleTester 类添加了额外的验证,以改进插件中自定义规则的测试。
  • ESLint 现在将相对于入口配置文件解析插件。这意味着位于项目外部的共享配置文件现在可以与其所需的插件位于同一位置。
  • 从 ESLint v7 开始,分别使用 --config path/to/a-config 和 --ignore-path path/to/a-ignore CLI 标志传递给 ESLint 的配置文件和忽略文件,将从当前工作目录而不是文件位置解析。这允许用户使用共享插件,而无需直接在他们的项目中安装它们。

新的 ESLint

  • CLIEngine 类提供了一个同步 API,它阻碍了诸如并行 linting、在共享配置/解析器/插件/格式化程序中支持 ES 模块以及添加可视化显示 linting 运行进度的功能的实现。新的 ESLint 类提供了一个异步 API,ESLint 核心在未来将使用它。CLIEngine 在可预见的未来将保留在核心中,但在未来的主要版本中可能会被删除。

破坏性更改

新功能

增强

错误修复

文档

依赖升级

  • 8d1b4db 构建:7.0.0-rc.0 的更新日志 (ESLint Jenkins)
  • 2531b80 构建:7.0.0-alpha.3 的更新日志 (ESLint Jenkins)
  • 2e8f193 构建:7.0.0-alpha.2 的更新日志 (ESLint Jenkins)
  • e9f1073 构建:7.0.0-alpha.1 的更新日志 (ESLint Jenkins)
  • c8c1b2b 构建:7.0.0-alpha.0 的更新日志 (ESLint Jenkins)
  • 4e16957 构建:更新浏览器构建 (#12693) (Toru Nagashima)
  • 827259e 构建:eslint-config-eslint 发布的 package.json 更新 (ESLint Jenkins)

杂务

最新的 ESLint 新闻、案例研究、教程和资源。

Evolving flat config with extends
5 分钟阅读

使用 extends 改进扁平化配置

您的 eslint.config.js 文件现在可以使用 extends 来简化您的配置。

ESLint v9.22.0 released
1 分钟阅读

ESLint v9.22.0 发布

我们刚刚推送了 ESLint v9.22.0,这是一个 ESLint 的小版本升级。此版本添加了一些新功能,并修复了之前版本中发现的几个错误。

ESLint v9.21.0 released
2 分钟阅读

ESLint v9.21.0 发布

我们刚刚推送了 ESLint v9.21.0,这是一个 ESLint 的小版本升级。此版本添加了一些新功能,并修复了之前版本中发现的几个错误。