ESlint 重大更新,你知道吗?

开发 前端
对varsIgnorePattern选项的使用范围进行了调整,不再适用于捕获的错误变量。同时,caughtErrors选项的默认值从"none"更改为"all",以更好地处理未使用的变量情况。此外,还新增了ignoreClassWithStaticInitBlock选项,以忽略具有静态初始化块的类中的未使用变量。

4 月 5 日,ESLint 正式发布了 v9.0.0,这是 ESLint 的一次重大版本升级。此版本的更新如下:

  • 安装:可以通过 npm i eslint@9.0.0 --save-dev 命令进行更新升级。
  • 迁移指南:由于存在大量更改,可以根据迁移指南[1]进行升级。
  • Node.js 版本支持:目前,Node.js v20.x 是 LTS 版本,因此不再支持 v18.18.0 以及 v19.x 之前的所有 Node.js 版本。
  • 默认配置格式:Flat config 现在是 ESLint 的默认配置格式,eslintrc 已正式弃用。
  • 删除部分格式化程序:包括 checkstyle、compact、jslint-xml、junit、tap、unix、visualstudio,后续需要通过独立安装包来使用。
  • 删除规则:删除了 valid-jsdoc 和 require-jsdoc,建议改用 eslint-plugin-jsdoc插件。
  • 更新推荐规则:eslint:recommended 配置已更新,包括重要的新规则,并删除已弃用和不太重要的规则。
  • 新增规则:新增 no-useless-assignment 规则,用于捕获已为变量分配了值但该值从未被使用的情况。
  • 全新 API:在主入口点新增函数 loadESLint()。可以使用此函数来获取 ESLint 类(以前的 FlatESLint 类)或 LegacyESLint 类(以前的 ESLint 类),从在扁平配置和 eslintrc API 之间进行切换。
  • 更严格的 RuleTester 验证:包括确保消息无未替换占位符、建议必须改变代码、测试用例输出与代码不同、错误对象指定消息或ID、建议对象需含描述或ID及输出,以及测试对象的属性类型符合预期,并避免重复测试。
  • 更好的作用域分析:更新了 eslint-scope 的行为,修复了一些长期存在的问题。
  • 更新现有规则:

complexity 规则:现在纳入了可选链和解构模式以及参数中的默认值,以提供更全面的代码复杂度评估。

no-fallthrough规则:新增了reportUnusedFallthroughComment选项,以提供更多关于未使用落体注释的反馈信息。

no-inner-declarations规则:的默认行为已更新。在v8.x版本中,它曾将块内部定义的函数视为错误,但随着 ES 2015 对块作用域函数声明的明确定义,现在默认不再对此发出警告。

no-misleading-character-class规则:改进了问题标识,现在将仅高亮显示正则表达式中有问题的字符,而不是整个表达式。

no-restricted-imports规则:在路径处理上进行了调整。在v8.x中,仅最后一个具有相同name属性的路径条目会生效;而在v9.0.0中,所有条目均有效,并允许为不同的导入名称指定不同的错误消息。同时,该规则还新增了allowImportNames和allowImportNamePattern选项,提供更大的灵活性。

no-unused-vars规则:对varsIgnorePattern选项的使用范围进行了调整,不再适用于捕获的错误变量。同时,caughtErrors选项的默认值从"none"更改为"all",以更好地处理未使用的变量情况。此外,还新增了ignoreClassWithStaticInitBlock选项,以忽略具有静态初始化块的类中的未使用变量。

no-useless-computed-key规则:将enforceForClassMembers选项的默认值从false更改为true,旨在减少重构过程中可能产生的误导性注释。当此选项设置为true时,规则将禁止在不会发生穿透的情况下使用穿透注释。

  • 引入配置检查器: 一个可视化工具,帮助理解和检查 ESLint 配置文件。

图片图片

  • 其他更新:

38 个重大更新;

21 个新增功能;

14 个 Bug 修复;

80 处文档更新;

11 个构建更新;

62 个其他更新;

ESLint v9.0.0 更新详情:https://eslint.org/blog/2024/04/eslint-v9.0.0-released/

[1]迁移指南: https://eslint.org/docs/latest/use/migrate-to-9.0.0

责任编辑:武晓燕 来源: 前端充电宝
相关推荐

2022-12-09 19:00:02

Vite兼容性BigInt

2024-04-26 09:03:31

Node.jsCurrent发布版

2023-12-20 08:23:53

NIO组件非阻塞

2023-12-12 08:41:01

2024-04-30 09:02:48

2023-04-26 10:21:04

2024-05-28 09:12:10

2019-06-14 15:36:13

Windows 10安全PC

2024-01-09 07:29:05

Argo代码库应用程序

2021-02-02 08:21:28

网络面试通信

2022-05-27 08:55:15

工具自动化软件

2020-10-28 11:20:55

vue项目技

2022-06-24 08:20:04

CAP网络通信

2017-10-16 13:45:04

2024-10-10 16:53:53

守护线程编程

2021-12-08 07:31:40

Linux安全病毒

2024-04-07 00:00:03

2024-07-30 08:22:47

API前端网关

2021-02-20 08:21:18

Hive动态分区

2022-03-10 08:25:27

JavaScrip变量作用域
点赞
收藏

51CTO技术栈公众号