ESLint是一个插件化的代码检测工具,它可以静态分析代码,快速发现问题。它可以内置在大多数文本编辑器中,开发者可以将 ESLint 作为 DevOps 的一部分来运行。下面是最近几次发布的版本主要特性回顾:
v7.0.0 - 放弃对 Node.js 8 的支持,改进开发者体验。
v8.50.0 - 弃用 no-new-object 规则,取而代之的是新的 no-object-constructor 规则。
v8.56.0 - 报告未使用的禁用指令时支持自定义严重程度。
v8.0.0 - 默认解析器和所有核心规则完全支持 ES2022 类的公共、私有方法及私有字段。
2023年09月23日,在 ESLint v8.50.0 版本发布时,ESLint 官推发布消息:ESLint 计划在 v9.0.0 中放弃对 Node.js < 18 和 Node.js 19 的支持。
2024年04月05日,经过近半年的迭代,ESLint v9.0.0 正式发布,下面来看看本次版本带来的重点更新。
放弃对 Node.js < v18.18.0、v19 的支持
随着 Node.js v20.x 将成为 LTS 版本,ESLint 将不再支持 v18.18.0 之前的所有 Node.js 版本以及 v19.x。
默认启用 Flat config
Flat config 现在是 ESLint 的默认配置格式,eslintrc 已被正式弃用。要继续使用 eslintrc 配置文件,需要将 ESLINT_USE_FLAT_CONFIG 环境变量设为 false。
这一变更会影响到用户、插件开发人员和集成人员,因为 ESLint 的许多方面都必须为此做出改变。此版本还引入了配置检查器,可使用 --inspect-config 在命令行上启动。
删除众多 formatter
删除了除 stylish、html、json 和 jsonon-with-meta 以外的所有 formatter:
checkstyle
compact
jslint-xml
junit
tap
unix
visualstudio
如果您目前正在使用这些格式化器,则需要安装独立软件包,以便与 ESLint v9.0.0 一起使用。
删除 valid-jsdoc 和 require-jsdoc 规则
ESLint 移除了 valid-jsdoc 和 require-jsdoc。建议使用 eslint-plugin-jsdoc 插件。
删除 context and SourceCode 中已废弃的方法
正如在九月份宣布的那样,ESLint 已经删除了上下文中的大量废弃方法,并用源代码中的方法取而代之。
eslint:recommended 更新
更新了 eslint:recommended 配置,以纳入 ESLint 认为重要的新规则,并删除过时和不太重要的规则。
新规则:no-useless-assignment
ESLint v9.0.0 引入了一条新规则 --no-useless-assignment,旨在捕捉为变量赋值但该值从未被使用的情况。例如:
let id = 1234; // 1234 is never usedid = calculateId;
新 API:loadESLint
ESLint 现在从其主入口导出了一个新函数 loadESLint。集成程序可使用该函数获取 ESLint 类(原 FlatESLint 类)或 LegacyESLint 类(原 ESLint 类),从而在 flat config 和 eslintrc API 之间轻松切换。
不允许同一规则包含多个 eslint 注释
在 ESLint v8.x,如果被标记的文件包含多个针对同一规则的 /* eslint */ 配置注释,最后一个注释将被应用,而其他注释将被静默忽略。
在 ESLint v9.0.0 中,第一个配置注释将被应用,而其他配置注释将被报告为 lint 错误。
--quiet 选项运行更高效
在 ESLint 控制台中,--quiet 选项会隐藏所有警告。在 v9.0.0 中,也不执行任何设置为 "警告" 的规则,从而提高了性能。
未使用的禁用指令默认会导致警告
一直以来,ESLint 都能标记未使用的禁用指令。在此版本中,默认启用了对未使用禁用指令的警告。你可以在配置文件中使用 linterOptions.reportUnusedDisableDirectives 或在命令行中使用 --report-unused-disable-directives-severity 来修改该值。
最后
ESLint v9.0.0 是一次重大版本升级。该版本增加了一些新功能,带来 38+ 破坏性更改、 20+ 特性更新以及相关问题修复。需要升级的同学可以参考官网提供的集成指南。
转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/147013.html