
亮点
🌐 Highlights
这是从 ESLint v8.x 升级到 ESLint v9.0.0 时,你需要了解的重要更改(包括重大更改和非重大更改)的总结。
🌐 This is a summary of the significant changes, both breaking and non-breaking, you need to know about when upgrading from ESLint v8.x to ESLint v9.0.0.
正在安装
🌐 Installing
因为这是一个重大版本发布,你可能不会被 npm 自动升级。为了确保你使用的是此版本,请运行:
🌐 Because this is a major release, you may not automatically be upgraded by npm. To ensure you are using this version, run:
npm i eslint@9.0.0 --save-dev
迁移指南
🌐 Migration Guide
由于有很多变化,我们创建了一个 迁移指南,详细描述了重大更改以及你应该采取的应对步骤。我们预计大多数用户应该能够在不更改构建的情况下升级,但如果遇到问题,迁移指南应该是一个有用的资源。
🌐 As there are a lot of changes, we’ve created a migration guide describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.
不再支持 Node.js < v18.18.0 和 v19
🌐 Node.js < v18.18.0, v19 no longer supported
截至本帖发布,Node.js v20.x 是长期支持版本,因此我们将停止支持 所有 v18.18.0 之前的 Node.js 版本以及 v19.x。
🌐 As of this post, Node.js v20.x is the LTS release, and as such we are dropping support for all versions of Node.js prior to v18.18.0 as well as v19.x.
平面配置现在是默认配置,并且有一些变化
🌐 Flat config is now the default and has some changes
Flat 配置现在是 ESLint 的默认配置格式,eslintrc 已被正式弃用。要继续使用 eslintrc 配置文件,你需要将 ESLINT_USE_FLAT_CONFIG 环境变量设置为 false。
🌐 Flat config is now the default configuration format for ESLint and eslintrc is officially deprecated. To continue using a eslintrc configuration file, you’ll need to set the ESLINT_USE_FLAT_CONFIG environment variable to false.
这一变化影响了用户、插件开发者和集成者,因为为了实现这一点,ESLint 的许多方面都必须进行更改。更多详情请参见我们之前的博客文章。
🌐 This change affects users, plugin developers, and integrators as many aspects of ESLint had to change to make this happen. Please see our previous blog post for more details.
此版本还引入了 配置检查器,可以在命令行上使用 --inspect-config 启动。
🌐 This release also introduces the config inspector, which can be launched on the command line using --inspect-config.
移除了除 stylish、html、json 和 json-with-meta 外的所有格式化器
🌐 Removed all formatters except stylish, html, json, and json-with-meta
以下格式化工具已被移除:
🌐 The following formatters have been removed:
checkstylecompactjslint-xmljunittapunixvisualstudio
如果你当前正在使用这些格式化工具,则需要安装 独立包 以用于 ESLint v9.0.0。
🌐 If you are using these formatters currently, you’ll need to install the standalone packages for use with ESLint v9.0.0.
已移除 valid-jsdoc 和 require-jsdoc 规则
🌐 Removed valid-jsdoc and require-jsdoc rules
我们已移除 valid-jsdoc 和 require-jsdoc。我们建议改用 eslint-plugin-jsdoc 插件。
🌐 We have removed valid-jsdoc and require-jsdoc. We recommend using the eslint-plugin-jsdoc plugin instead.
移除了 context 和 SourceCode 上的不推荐使用的方法
🌐 Removed deprecated methods on context and SourceCode
正如我们在九月宣布的那样,我们已经从 context 中移除了许多已弃用的方法,并用 SourceCode 上的方法进行了替代。
🌐 As we announced in September, we have removed a lot of deprecated methods from context and replaced them with methods on SourceCode.
已更新 eslint:recommended
🌐 Updated eslint:recommended
eslint:recommended 配置已更新,以包括我们认为重要的新规则,并删除已弃用和不那么重要的规则。
🌐 The eslint:recommended configuration is updated to include new rules that we feel are important, and to remove deprecated and less important rules.
新规则:no-useless-assignment
🌐 New rule: no-useless-assignment
ESLint v9.0.0 引入了一条新规则 no-useless-assignment,旨在发现你给变量赋值但该值从未被使用的情况。例如:
🌐 ESLint v9.0.0 introduces a new rule, no-useless-assignment, that is designed to catch situations where you’ve assigned a value to a variable and that value is never used. For example:
let id = 1234; // 1234 is never used
id = calculateId();
对现有规则的更新
🌐 Updates to existing rules
- 现在,
complexity规则还会考虑解构模式和参数中的可选链和默认值。 [no-fallthrough](/docs/latest/rules/no-fallthrough)规则有一个新的选项reportUnusedFallthroughComment。no-inner-declarations规则有了新的默认行为。在 v8.x 中,该规则会将块内定义的任何函数标记为错误,因为这种行为在早期版本的 JavaScript 中是未定义的。从 ES 2015 开始,块级作用域的函数声明是明确定义的,因此我们将默认行为更改为不对块级作用域的函数发出警告。no-misleading-character-class规则现在会高亮正则表达式中有问题的字符,而不是整个正则表达式。no-restricted-imports规则改变了paths的行为。在 v8.x 中,如果你为no-restricted-imports规则的配置中paths数组有多个条目具有相同的name属性,只有最后一个会生效。在 v9.0.0 中,所有条目都会生效,从而可以为不同的导入名称指定不同的错误信息。no-restricted-imports规则有新的选项allowImportNames和allowImportNamePattern。no-unused-vars规则varsIgnorePattern选项不再适用于已捕获的错误变量。no-unused-vars规则的caughtErrors选项有了新的默认值(已从"none"更改为"all")。[no-unused-vars](/docs/latest/rules/no-unused-vars)规则有一个新的选项ignoreClassWithStaticInitBlock。[no-unused-vars](/docs/latest/rules/no-unused-vars)规则有一个新的选项reportUsedIgnorePattern。no-useless-computed-key规则的enforceForClassMembers选项有了新的默认值(从false改为true)。此更改旨在帮助避免由于重构而可能出现的误导性注释。当此选项设置为true时,如果某个 case 永远不会穿透,则规则将禁止出现穿透注释。
新 API loadESLint()
🌐 New API loadESLint()
ESLint 现在从其主入口点导出一个新的函数 loadESLint()。集成可以使用此函数获取 ESLint 类(原来的 FlatESLint 类)或 LegacyESLint 类(原来的 ESLint 类),从而轻松在 flat 配置和 eslintrc API 之间切换。
🌐 ESLint now exports a new function loadESLint() from its main entry point. Integrations can use this function to get either the ESLint class (former FlatESLint class) or the LegacyESLint class (former ESLint class) and thus easily swap between flat config and eslintrc APIs.
规则书写方式的更改
🌐 Changes to how you write rules
我们进行了多项更改以帮助防止规则错误:
🌐 We’ve made multiple changes to help prevent errors in rules:
- 函数风格的规则将在 v9.0.0 中停止工作。函数风格的规则是通过从文件中导出一个函数而不是导出带有
create()方法的对象来创建的规则。 - 当规则没有指定
meta.schema时,将应用默认架构[]。这意味着没有架构的规则将被假定为没有选项,这反过来意味着如果提供了选项,验证将失败。
更严格的 RuleTester 验证
🌐 Stricter RuleTester validations
此版本在 RuleTester 中增加了更多检查:
🌐 This release adds more checks in RuleTester:
- 消息不能有未替换的占位符。
- 建议必须更改代码。
- 针对同一个 lint 问题的建议信息必须是唯一的。
- 建议必须生成有效的语法。
- 测试用例
output必须不同于code。 - 测试错误对象必须指定
message或messageId。 - 如果实际错误提供了建议,则测试错误对象必须指定
suggestions。 - 测试建议对象必须指定
desc或messageId。 - 测试建议对象必须指定
output。 filename和only测试对象的属性必须是预期的类型(分别为string和boolean)。- 重复测试会导致错误。
--output-file 标志现在保证文件会被输出
🌐 The --output-file flag now guarantees a file is output
--output-file CLI 标志旨在将 ESLint 运行的结果输出到指定文件。在此版本之前,如果 lint 检查通过且没有错误或警告,将不会输出任何文件。在 v9.0.0 中,当 lint 检查通过且没有任何错误或警告时,将输出一个空文件。
🌐 The --output-file CLI flag is designed to output the results of the ESLint run to specified file. Prior to this release, no file would be output if linting passed with no errors or warnings. In v9.0.0, an empty file will be output when linting passes without any errors or warnings.
更好的范围分析
🌐 Better scope analysis
在 v9.0.0 中,我们更新了 eslint-scope 的行为以修复几个长期存在的漏洞:
🌐 In v9.0.0, we updated the behavior of eslint-scope to fix a couple of longstanding bugs:
- 之前,ESLint 会将
("use strict")视为严格模式指令,即使它不是。我们修复了该行为,现在只有有效的严格模式指令才会被认可。 - 类
extends条款的包含作用域被错误地设置为包含该类的作用域,而它本应是类本身的作用域。这已经被修复。
CodePath#currentSegments 已移除
🌐 CodePath#currentSegments removed
如我们在上一篇帖子中宣布的那样,CodePath#currentSegments 已从规则 API 中移除。更多详情请参阅该帖子。
🌐 As announced in our previous post, CodePath#currentSegments has been removed from the rules API. Please refer to the post for more details.
预计算代码路径
🌐 Precalculated Code Paths
ESLint v9.0.0 现在在规则使用的遍历之前预先计算代码路径信息。因此,无论在规则的何处访问,代码路径信息现在都是完整的。
🌐 ESLint v9.0.0 now precalculates code path information before the traversal used by rules. As a result, the code path information is now complete regardless of where it is accessed inside of a rule.
对于同一规则的多个 /* eslint */ 注释现在不被允许
🌐 Multiple /* eslint */ comments for the same rule are now disallowed
在 ESLint v8.x 中,如果被 lint 的文件包含针对同一规则的多个 /* eslint */ 配置注释,将会应用最后一个注释,而其他注释将被默默忽略。
🌐 In ESLint v8.x, if the file being linted contained multiple /* eslint */ configuration comments for the same rule, the last one would be applied, while the others would be silently ignored.
在 ESLint v9.0.0 中,第一个会被应用,而其他的会被报告为 lint 错误。
🌐 In ESLint v9.0.0, the first one is applied, while the others are reported as lint errors.
--quiet 选项性能更好
🌐 --quiet option is more performant
--quiet 选项会在 ESLint 控制台中隐藏所有警告。在 v9.0.0 中,我们通过不执行任何设置为 "warn" 的规则来进行性能改进。
🌐 The --quiet option hides all warnings in the ESLint console. In v9.0.0, we are making a performance improvement by also not executing any rules set to "warn".
运行 eslint 时没有文件参数
🌐 Running eslint with no file arguments
如果你使用扁平配置并且没有向 CLI 传递任何文件参数,CLI 将默认对当前目录进行 lint,这意味着你可以输入 npx eslint 并且它将直接工作。(使用 eslintrc 配置文件执行相同操作会导致错误。)
🌐 If you are using flat config and you don’t pass any file arguments to the CLI, the CLI will default to linting the current directory, which means you can type npx eslint and it will just work. (Doing the same with an eslintrc config file will result in an error.)
未使用的禁用指令默认会引发警告
🌐 Unused disable directives cause warnings by default
ESLint 长期以来就能够标记未使用的禁用指令。在此版本中,我们默认启用了对未使用禁用指令的警告。你可以在配置文件中使用 linterOptions.reportUnusedDisableDirectives 修改此值,或在命令行使用 --report-unused-disable-directives-severity 修改此值。
🌐 ESLint has long been able to flag unused disable directives. In this release, we’ve enabled warnings for unused disable directives by default. You can modify this value in your config file with linterOptions.reportUnusedDisableDirectives or on the command line using --report-unused-disable-directives-severity.
通过 --stats 提供的格式化程序中可用的性能统计信息
🌐 Performance statistics available in formatters via --stats
当在 CLI 中使用 --stats 标志 时,来自 rule profiler 的信息现在可以在格式化程序中使用。这使得任何人都可以创建 ESLint 跟踪的性能信息的自定义可视化。
🌐 The information from the rule profiler is now available inside of formatters when the --stats flag is used in the CLI. This allows anyone to create custom visualizations of the performance information that ESLint tracks.
重大更改
🌐 Breaking Changes
b7cf3bd修复!: 修复allow选项的camelcase规则模式 (#18232) (eMerzh)09bd7fe重大更新!: 将 AST 遍历移入 SourceCode (#18167) (Nicholas C. Zakas)79a95ebfeat!: 禁止对同一规则使用多个配置注释 (#18157) (Milos Djermanovic)9163646增强功能!:规则测试器检查消息中缺失的占位符数据 (#18073) (fnx)3c4d51d特性!:no-useless-computed-key中enforceForClassMembers的默认值 (#18054) (Francesco Trotta)47e60f8功能更新!: 更严格的规则测试验证 (#17654) (fnx)1a94589功能更新!:no-unused-vars将默认 caughtErrors 设置为 ‘all’ (#18043) (Josh Goldberg ✨)[57089cb](https://github.com/eslint/eslint/commit/57089cb5166acf8b8bdba8a8dbeb0a129f841478)功能更新!: no-restricted-imports 允许同一路径的多个配置条目 (#18021) (Milos Djermanovic)2e1d549功能更新!: 检测重复测试用例 (#17955) (Bryan Mishkin)701f1af功能更新!: no-inner-declaration 新的默认行为和选项 (#17885) (Tanuj Kanti)bde5105修复!: 处理保存到磁盘时--output-file的空输出 (#17957) (Nitin Kumar)07107a5修复!: 升级 eslint-scope@8.0.0 (#17942) (Milos Djermanovic)3ee0f6c修复!: no-unused-varsvarsIgnorePattern在 catch 参数中的行为 (#17932) (Tanuj Kanti)51f8bc8修复!: 仅带严重性的配置注释应保留选项 (#17945) (Milos Djermanovic)d191bdd功能更新!: 移除 CodePath#currentSegments (#17936) (Milos Djermanovic)946ae00增强功能!: FlatRuleTester -> RuleTester (#17922) (Nicholas C. Zakas)baff28c功能更新!: 从eslint:recommended中移除no-inner-declarations(#17920) (Milos Djermanovic)cadfbcdfeat!: 将 FlatESLint 重命名为 ESLint (#17914) (Nicholas C. Zakas)d1018fc功能更新!: 在 --quiet 模式下跳过运行警告 (#17274) (Maddy Miller)fb81b1cfeat!: 设置默认schema: [],放弃对函数风格规则的支持 (#17792) (Milos Djermanovic)0b21e1f功能更新!: 为no-implicit-coercion添加两个更多用例 (#17832) (Gürgün Dayıoğlu)2916c63feat!: 默认将 Linter 切换为平面配置 (#17851) (Nicholas C. Zakas)200518e修复!:使用 parseListConfig 解析 ‘exported’ 注释 (#17675) (amondev)bdd6ba1功能更新!: 移除 valid-jsdoc 和 require-jsdoc (#17694) (Nicholas C. Zakas)12be307修复!:当未传递参数时 CLI 的行为 (#17644) (Nicholas C. Zakas)8fe8c56feat!: 更新 shouldUseFlatConfig 和 CLI,使平面配置成为默认 (#17748) (Nicholas C. Zakas)60dea3e功能更新!: 弃用 no-new-symbol,推荐使用 no-new-native-nonconstructor (#17710) (Francesco Trotta)5aa9c49功能更新!:检查建议修复中的解析错误 (#16639) (Bryan Mishkin)b3e0bb0增强功能!:在规则测试器中断言建议消息是唯一的 (#17532) (Josh Goldberg ✨)e563c52feat!:no-invalid-regexp使 allowConstructorFlags 区分大小写 (#17533) (Josh Goldberg ✨)e5f02c7修复!: no-sequences 规则模式修复 (#17878) (MHO)6ee3e9e功能更新!:更新eslint:recommended配置 (#17716) (Milos Djermanovic)c2cf85a功能更新!: 在扁平配置数组中放弃对字符串配置的支持 (#17717) (Milos Djermanovic)c314fd6功能更新!: 移除SourceCode#getComments()(#17715) (Milos Djermanovic)ae78ff1功能更新!: 移除已废弃的上下文方法 (#17698) (Nicholas C. Zakas)[f71c328](https://github.com/eslint/eslint/commit/f71c328e2786e2d73f168e43c7f96de172484a49)功能更新!: 在 API 中交换 FlatESLint-ESLint、FlatRuleTester-RuleTester (#17823) (Nicholas C. Zakas)5304da0功能更新!: 移除除 html、json(含元数据)和 stylish 之外的格式化器 (#17531) (Josh Goldberg ✨)e1e827f增强功能!: 需要 Node.js^18.18.0 || ^20.9.0 || >=21.1.0(#17725) (Milos Djermanovic)
特性
🌐 Features
d54a412功能:添加 --inspect-config 命令行标志 (#18270) (Nicholas C. Zakas)97ce45b功能:向no-unused-vars规则添加reportUsedIgnorePattern选项 (#17662) (Pearce Ropion)3e9fcea功能:在错误信息中显示配置名称 (#18256) (Nicholas C. Zakas)de40874功能:平面 ESLint 的规则性能统计 (#17850) (Mara Kiefer)d85c436功能:使用 use-isnan 报告indexOf和lastIndexOf中从 fromIndex 开始的 NaN (#18225) (Tanuj Kanti)[b8fb572](https://github.com/eslint/eslint/commit/b8fb57256103b908712302ccd508f464eff1c9dc)功能:为 no-fallthrough 规则添加reportUnusedFallthroughComment选项 (#18188)(Kirk Waiblinger)1c173dc功能:向no-unused-vars添加ignoreClassWithStaticInitBlock选项 (#18170) (Tanuj Kanti)a451b32功能:使no-misleading-character-class报告更详细的错误 (#18082) (Francesco Trotta)c49ed63功能:更新复杂性规则以支持可选链和默认值 (#18152) (Mathias Schreck)11144a2功能:no-restricted-imports选项已添加allowImportNames(#16196) (M Pater)74124c2功能:在indexOf和lastIndexOf调用中为use-isnan添加建议 (#18063) (StyleShit)53f0f47功能:为 v9 添加 loadESLint() API 方法 (#18097) (Nicholas C. Zakas)2d11d46功能:在二进制表达式中向use-isnan添加建议 (#17996) (StyleShit)26093c7功能:修复no-this-before-super中的假阴性 (#17762) (太田洋介)5471e43功能:将不安全的自动修复转换为no-implicit-coercion中的建议 (#17985) (Gürgün Dayıoğlu)e3051be功能:当检测到.eslintignore文件时发出警告 (#17952) (Nitin Kumar)a630edd功能:在 ESLint 中保持最新的 ECMAScript 版本 (#17958) (Milos Djermanovic)b4e0503功能:添加no-useless-assignment规则 (#17625) (太田洋介)287c4b7功能:no-misleading-character-class细粒度错误 (#17515) (Josh Goldberg ✨)8792464功能:启用 eslint.config.mjs 和 eslint.config.cjs (#17909) (Nicholas C. Zakas)24ce927功能:默认警告未使用的禁用指令 (#17879) (Bryan Mishkin)
错误修复
🌐 Bug Fixes
[610c148](https://github.com/eslint/eslint/commit/610c1486dc54a095667822113eb08062a1aad2b7)修复:在 no-lone-blocks 中支持using声明 (#18269)(Kirk Waiblinger)e508800修复:规则测试器忽略无关的测试用例属性 (#18235) (fnx)a129acb修复:忽略对象上的扁平配置名称 (#18258) (Nicholas C. Zakas)dadc5bf修复:constructor-super循环中的误报 (#18226) (Milos Djermanovic)ae8103d修复:在平面配置模式下在 CLI 中加载插件 (#18185) (Francesco Trotta)e37153f修复:改进无效规则配置的错误信息 (#18147) (Nitin Kumar)af6e170修复:在发生错误后停止对文件进行 lint (#18155) (Francesco Trotta)0cb4914修复:当评论仅启用严重性时验证选项以启用规则 (#18133) (Milos Djermanovic)c4d26fd修复:use-isnan不会报告SequenceExpression的问题 (#18059) (StyleShit)39076fb修复:在RuleTester中处理绝对文件路径 (#17989) (Nitin Kumar)6d11f3d修复:确保配置错误时打印配置键 (#17980) (Nicholas C. Zakas)806f708修复:no-misleading-character-class的边缘情况及详细错误 (#17970) (Milos Djermanovic)f182114修复:扁平配置中的深度合并行为 (#17906) (Francesco Trotta)b577e8a修复:允许配置中的循环引用 (#17752) (Francesco Trotta)
文档
🌐 Documentation
e151050文档:将入门指南更新为新的@eslint/create-config(#18217) (唯然)94178ad文档:提到平面配置中的name字段 (#18252) (Anthony Fu)1765c24文档:添加故障排除页面 (#18181) (Josh Goldberg ✨)96607d0文档:版本选择器同步 (#18260) (Milos Djermanovic)651ec91文档:从规则示例中删除/* eslint-env */注释 (#18249) (Milos Djermanovic)950c4f1文档:更新自述文件(GitHub Actions 机器人)12f5746文档:在扁平配置中添加关于点文件和目录的信息 (#18239) (Tanuj Kanti)b93f408文档:更新共享设置示例 (#18251) (Tanuj Kanti)26384d3文档:修复一个示例中的ecmaVersion,添加检查 (#18241) (Milos Djermanovic)7747097文档:更新 PR 审查流程 (#18233) (Nicholas C. Zakas)b07d427文档:修复拼写错误 (#18246) (Kirill Gavrilov)778082d文档:添加术语表页面 (#18187) (Josh Goldberg ✨)239a7e2文档:澄清sort-imports选项的描述 (#18198) (gyeongwoo park)4769c86文档:修复no-lone-blocks中的错误示例 (#18215) (Tanuj Kanti)5251327文档:更新自述文件(GitHub Actions 机器人)1dc8618文档:更新自述文件(GitHub Actions 机器人)ba1c1bb文档:更新自述文件(GitHub Actions 机器人)337cdf9文档:解释 RuleTester 修复测试的限制 (#18175) (Nicholas C. Zakas)c7abd89文档:解释 Node.js 版本支持 (#18176) (Nicholas C. Zakas)d961eeb文档:在规则文档的示例中显示红色下划线 (#18041) (太田洋介)558274a文档:更新自述文件(GitHub Actions 机器人)2908b9b文档:更新发布文档 (#18174) (Nicholas C. Zakas)1f1260e文档:将 HackerOne 链接替换为 GitHub 公告 (#18165) (Francesco Trotta)e5ef3cd文档:在no-fallthrough中添加内联用例条件 (#18158) (Tanuj Kanti)450d0f0文档:修复ignore选项文档 (#18154) (Francesco Trotta)5fe095c文档:在下拉菜单中显示 v8.57.0 作为最新版本 (#18142) (Milos Djermanovic)7db5bb2文档:在下拉菜单中显示预发布版本 (#18135) (Nicholas C. Zakas)73a5f06文档:更新自述文件(GitHub Actions 机器人)f95cd27文档:禁止在同一示例中配置多个规则注释 (#18116) (Milos Djermanovic)d8068ec文档:更新 schema 示例的链接 (#18112) (Svetlana)f1c7e6f文档:切换到道德广告 (#18090) (Strek)15c143f文档:JS Foundation -> OpenJS Foundation 在 PR 模板中 (#18092) (Nicholas C. Zakas)6ea339e文档:在 v9 迁移指南中添加更严格的规则测试验证 (#18085) (Milos Djermanovic)3c816f1文档:从 CLI 使用相对链接到核心概念 (#18083) (Milos Djermanovic)9458735文档:修复规则示例中格式错误的eslint配置注释 (#18078) (Francesco Trotta)07a1ada文档:从--fixCLI 文档链接到相关核心概念 (#18080) (Bryan Mishkin)b844324文档:更新团队职责 (#18048) (Nicholas C. Zakas)aadfb60文档:记录 context 的 languageOptions 及其他 v9 变更 (#18074) (fnx)857e242文档:调整 meta.docs 规则属性的说明 (#18057) (Bryan Mishkin)10485e8文档:建议使用 messageId 而不是 message 来报告规则违规 (#18050) (Bryan Mishkin)98b5ab4文档:更新自述文件(GitHub Actions 机器人)505fbf4文档:更新no-restricted-imports规则 (#18015) (Tanuj Kanti)c25b4af文档:更新自述文件(GitHub Actions 机器人)33d1ab0文档:在 flat 配置忽略文档中添加更多示例 (#18020) (Milos Djermanovic)e6eebca文档:更新 sort-keys 选项属性计数 (#18025) (LB (Ben Johnston))1fedfd2文档:改进平面配置忽略文档 (#17997) (Nicholas C. Zakas)38b9b06文档:更新 valid-typeof 规则 (#18001) (Tanuj Kanti)b4abfea文档:更新有关 ECMAScript 支持的说明 (#17991) (Francesco Trotta)6788873文档:更新发布博客文章模板 (#17994) (Nicholas C. Zakas)1f37442文档:添加关于非 npm 插件配置的章节 (#17984) (Nicholas C. Zakas)96307da文档:no-inner-declarations的迁移指南条目 (#17977) (Tanuj Kanti)40be60e文档:更新自述文件(GitHub Actions 机器人)d31c180文档:修复自定义规则页面上的代码路径事件数量 (#17969) (Richard Hunter)1529ab2文档:在 v9 迁移指南中重新排序条目 (#17967) (Milos Djermanovic)9507525文档:解释如何合并配置 (#17947) (Nicholas C. Zakas)7c78576文档:添加更多已移除的context方法以迁移到 v9 指南 (#17951) (Milos Djermanovic)3a877d6文档:更新已移除的 CLI 标志迁移 (#17939) (Nicholas C. Zakas)4a9cd1e文档:更新 v9 的 Linter API (#17937) (Milos Djermanovic)2a8eea8文档:更新 v9.0.0-alpha.0 的文档 (#17929) (Milos Djermanovic)7f0ba51文档:在版本选择器中显示NEXT(#17911) (Milos Djermanovic)0a7911e文档:在 v9 迁移指南中添加平面配置默认值 (#17927) (Milos Djermanovic)94f8065文档:添加 CLI 更新以迁移到 v9 指南 (#17924) (Nicholas C. Zakas)16187f2文档:在迁移到 v9 指南中添加导出和字符串配置说明 (#17926) (Nicholas C. Zakas)3ae50cc文档:添加 RuleTester 更改以迁移到 v9 指南 (#17923) (Nicholas C. Zakas)0831b58文档:在 v9 迁移指南中添加规则更改 (#17925) (Milos Djermanovic)037abfc文档:更新 API 文档 (#17919) (Milos Djermanovic)afc3c03文档:在 v9 迁移指南中添加函数风格和meta.schema变更 (#17912) (Milos Djermanovic)1da0723文档:更新迁移到 v9.x 中的eslint:recommended部分 (#17908) (Milos Djermanovic)f55881f文档:移除 configuration-files-new.md (#17907) (Milos Djermanovic)63ae191文档:迁移到 v9.0.0 (#17905) (Nicholas C. Zakas)e708496文档:默认切换到扁平配置 (#17840) (Nicholas C. Zakas)fdf0424文档:更新为平面配置创建插件 (#17826) (Nicholas C. Zakas)e6a91bd文档:将可共享配置文档切换为使用扁平配置 (#17827) (Nicholas C. Zakas)3831fb7文档:更新了max-lines规则的示例 (#17898) (Tanuj Kanti)cd1ac20文档:更新自述文件(GitHub Actions 机器人)
构建相关
🌐 Build Related
26010c2构建:9.0.0-rc.0 的更新日志更新(Jenkins)b91f9dc构建:修复 prism-eslint-hooks.js 中的 TypeError (#18209) (Francesco Trotta)d7ec0d1构建:9.0.0-beta.2 的更新日志更新(Jenkins)fd9c0a9构建:9.0.0-beta.1 的更新日志 (Jenkins)c9f2f33构建:8.57.0 更新日志 (#18144) (Milos Djermanovic)1bbc495构建:9.0.0-beta.0 的更新日志更新(Jenkins)96f8877构建:9.0.0-alpha.2 的更新日志 (Jenkins)52d5e7a构建:9.0.0-alpha.1 的更新日志更新(Jenkins)c2bf27d构建:在发布预发布版本时更新文档文件 (#17940) (Milos Djermanovic)e91d85d构建:9.0.0-alpha.0 的更新日志更新(Jenkins)
杂项
🌐 Chores
19f9a89杂务:更新依赖以适配 v9.0.0 (#18275) (Nicholas C. Zakas)7c957f2事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)d73a33c事务:在链接检查器中忽略/docs/v8.x(#18274) (Milos Djermanovic)44a81c6杂务:升级 knip (#18272) (Lars Kappert)e80b60c杂务:移除用于测试版本选择器的代码 (#18266) (Milos Djermanovic)a98babc杂项:添加 npm 脚本以运行 WebdriverIO 测试 (#18238) (Francesco Trotta)9b7bd3b事务:将依赖 markdownlint 更新到 ^0.34.0 (#18237) (renovate[bot])297416d杂项:为 eslint-9.0.0-rc.0 更新 package.json (#18223) (Francesco Trotta)d363c51事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)1b841bb杂务:修复一些评论 (#18213) (avoidaway)29c3595任务:删除重复的词 (#18193) (cuithon)acc2e06任务:引入 Knip (#18005) (Lars Kappert)7509276事务: 升级 @eslint/js@9.0.0-beta.2 (#18180) (Milos Djermanovic)96087b3事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)925afa2杂务:移除lodash.merge的一些使用 (#18179) (Milos Djermanovic)972ef15杂项:移除 @eslint/js 中的无效类型 (#18164) (Nitin Kumar)32ffdd1事务:升级 @eslint/js@9.0.0-beta.1 (#18146) (Milos Djermanovic)e41425b事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)bb3b9c6事务:升级 @eslint/eslintrc@3.0.2 (#18145) (Milos Djermanovic)e462524杂项:升级 eslint-release@3.2.2 (#18138) (Milos Djermanovic)8e13a6b任务:修复 README.md 中的拼写错误 (#18128) (Will Eastcott)66f52e2杂务:删除未使用的工具 rule-types.json,更新 update-rule-types.js (#18125) (Josh Goldberg ✨)bf0c7efci:修复 pr-labeler 的 sync-labels 值 (#18124) (Tanuj Kanti)cace6d0ci:添加 PR 标签器动作 (#18109) (Nitin Kumar)1a65d3e杂务: 从eslint-config-eslint导出base配置 (#18119) (Milos Djermanovic)9aa4df3重构:移除globals依赖 (#18115) (Milos Djermanovic)e40d1d7事务:升级 @eslint/js@9.0.0-beta.0 (#18108) (Milos Djermanovic)9870f93事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)2c62e79事务:升级 @eslint/eslintrc@3.0.1 (#18107) (Milos Djermanovic)81f0294杂项:升级 espree@10.0.1 (#18106) (Milos Djermanovic)5e2b292杂项:升级 eslint-visitor-keys@4.0.0 (#18105) (Milos Djermanovic)ce838ad事务:用 npm-run-all2 ^5.0.0 替换依赖 npm-run-all (#18045) (renovate[bot])54df731杂务:将依赖 markdownlint-cli 更新到 ^0.39.0 (#18084) (renovate[bot])8f06a60杂务: 更新依赖 shelljs 至 ^0.8.5 (#18079) (Francesco Trotta)93ffe30事务:将依赖 file-entry-cache 更新到 v8 (#17903) (renovate[bot])6ffdcbb事务: 升级 @eslint/js@9.0.0-alpha.2 (#18038) (Milos Djermanovic)2c12715事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)cc74c4d杂项:升级 espree@10.0.0 (#18037) (Milos Djermanovic)dfb68b6任务:为文档网站使用 Node.js 20 (#18026) (Milos Djermanovic)8c1b8dd测试:为忽略文件和目录添加更多测试 (#18018) (Milos Djermanovic)60b966b事务: 将依赖 @eslint/js 更新到 v9.0.0-alpha.1 (#18014) (renovate[bot])c893bc0事务:将markdownlint更新为v0.33.0(#17995) (Nitin Kumar)c5e50ee事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)1bf2520事务: 将文档 CI 与核心 CI 分离 (#17897) (Nicholas C. Zakas)320787e任务: 删除 relative-module-resolver.js (#17981) (Francesco Trotta)4926f33重构:使用Object.hasOwn()(#17948) (Milos Djermanovic)df200e1重构:使用Array.prototype.at()获取最后的元素 (#17949) (Milos Djermanovic)750b8df事务: 将依赖 glob 更新到 v10 (#17917) (renovate[bot])74794f5事务: 移除了未使用的 eslintrc 模块 (#17938) (Milos Djermanovic)10ed29c杂务:移除未使用的依赖 rimraf (#17934) (Francesco Trotta)903ee60ci:安装 eslint 时使用--force标志 (#17921) (Milos Djermanovic)17fedc1事务:升级 @eslint/js@9.0.0-alpha.0 (#17928) (Milos Djermanovic)cb89ef3事务:更新 package.json 以适配 @eslint/js 版本发布(Jenkins)f6f4a45任务:为 v9 放弃 structuredClone polyfill (#17915) (Kevin Gibbons)412dcbb杂务:升级 eslint-plugin-n 至 16.6.0 (#17916) (Milos Djermanovic)02a8baf杂项:重命名带下划线的文件 (#17910) (Nicholas C. Zakas)c0f5d91任务:在测试中移除创建未使用的 Linter 实例 (#17902) (Milos Djermanovic)3826cdf事务:使用 jsdoc/no-multi-asterisks 并允许空格: true (#17900) (Percy Ma)a9a17b3杂项:修复测试中获取作用域的问题 (#17899) (Milos Djermanovic)595a1f6测试:确保 CLI 测试在 FlatESLint 下运行 (#17884) (Francesco Trotta)c7eca43杂务:将依赖 markdownlint-cli 更新到 ^0.38.0 (#17865) (renovate[bot])cc0c9f7ci: 将 github/codeql-action 从 2 升级到 3 (#17873) (dependabot[bot])
