ESLint v9.0.0-beta.0 发布

我们刚刚发布了 ESLint v9.0.0-beta.0,这是 ESLint 的一次重大版本升级。此次发布增加了一些新功能,并修复了前一个版本中发现的几个错误。此次发布还有一些破坏性更改,因此请仔细阅读以下内容。

亮点

🌐 Highlights

这是本版本 ESLint 中你需要了解的主要更改的总结。

🌐 This is a summary of the major changes you need to know about for this version of ESLint.

正在安装

🌐 Installing

由于这是预发布版本,npm 不会自动升级。安装时必须指定 next 标签:

🌐 Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the next tag when installing:

npm i eslint@next --save-dev

你也可以直接指定版本:

🌐 You can also specify the version directly:

npm i eslint@9.0.0-beta.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.

规则选项的新默认值

🌐 New default values ​​for rule options

在 v9.0.0 中,以下规则有了新的默认值:

🌐 In v9.0.0, the following rules have new defaults:

  • no-unused-varscaughtErrors 选项的默认值已从 "none" 更改为 "all"
  • no-useless-computed-keyenforceForClassMembers 选项的默认值已从 false 更改为 true

更严格的 RuleTester 验证

🌐 Stricter RuleTester validations

此版本在 RuleTester 中增加了更多检查:

🌐 This release adds more checks in RuleTester:

  • 消息不能有未替换的占位符。
  • 建议必须更改代码。
  • 测试用例 output 必须不同于 code
  • 测试错误对象必须指定 messagemessageId
  • 如果实际错误提供了建议,则测试错误对象必须指定 suggestions
  • 测试建议对象必须指定 descmessageId
  • 测试建议对象必须指定 output
  • filenameonly 测试对象的属性必须是预期的类型(分别为 stringboolean)。

新 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.

重大更改

🌐 Breaking Changes

特性

🌐 Features

错误修复

🌐 Bug Fixes

文档

🌐 Documentation

  • 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 文档:从 --fix CLI 文档链接到相关核心概念 (#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 机器人)

杂项

🌐 Chores

  • 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])

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

ESLint v10.3.0 发布
1 min read

ESLint v10.3.0 发布

我们刚刚发布了 ESLint v10.3.0,这是 ESLint 的一次小版本升级。此版本添加了一些新功能,并修复了上一版本中发现的几个错误。

ESLint v10.2.1 发布
1 min read

ESLint v10.2.1 发布

我们刚刚发布了 ESLint v10.2.1,这是 ESLint 的一个补丁版本升级。本次发布修复了上一版本中发现的几个错误。

ESLint v10.2.0 发布
2 min read

ESLint v10.2.0 发布

我们刚刚发布了 ESLint v10.2.0,这是 ESLint 的一次小版本升级。此版本添加了一些新功能,并修复了上一版本中发现的几个错误。