
亮点
🌐 Highlights
v8.0.0 中有若干重大变更。我们创建了一个迁移指南来解释这些重大变更并描述如何升级。此外,还有若干新功能:
🌐 There are several breaking changes in v8.0.0. We’ve created a migration guide to explain the breaking changes and describe how to upgrade. In addition, there are several new features:
- ESLint 的默认解析器和所有核心规则现在完全支持以下 ES2022 语法:
- 类的公共实例字段和私有实例字段
- 类的公共静态字段和私有静态字段
- 类的私有实例方法和访问器
- 类的私有静态方法和访问器
- 正则表达式匹配索引
- 顶层
await
- 当
--fix和--report-unused-disable-directives一起使用时,Autofix 现在可以移除未使用的禁用指令。 - 在 ES3 中,保留字作为标识符的使用现在已被禁止。此更改仅影响在解析器选项中配置了默认解析器
{ "ecmaVersion": 3 }的用户。 [class-methods-use-this](/docs/8.0.0/rules/class-methods-use-this)规则有一个新的enforceForClassFields选项。[max-classes-per-file](/docs/8.0.0/rules/max-classes-per-file)规则有一个新的ignoreExpressions选项。meta.docs.category属性已从所有核心规则中移除。
重大更改
🌐 Breaking Changes
7cf96cf重大更新:在 ES3 中禁止使用保留字(修复 #15017) (#15046) (Milos Djermanovic)305e14a最新消息:在核心规则中移除 meta.docs.category(修复 #13398)(#14594)(薛定谔的猫)24c9f2a突发新闻:严格的包导出(参考 #13654)(#14706)(Nicholas C. Zakas)86d31a4最新消息:在 RuleTester 中禁止使用 SourceCode#getComments()(参考 #14744)(#14769)(Milos Djermanovic)1d2213d最新消息:可修复的禁用指令(修复 #11815)(#14617)(Josh Goldberg)4a7aab7最新消息:可修复规则需要meta(修复 #13349) (#14634) (Milos Djermanovic)d6a761f最新消息:规则建议需要meta.hasSuggestions(#14573) (Bryan Mishkin)6bd747b最新消息:支持新的正则表达式 d 标志(修复 #14640) (#14653)(太田洋介)8b4f3ab快讯:修复 comma-dangle 方案(修复 #13739) (#14030) (Joakim Nilsson)b953a4e重大更新:升级 espree 并支持新的类特性 (参考 #14343) (#14591) (Toru Nagashima)8cce06c重大更新:向 eslint:recommended 添加一些规则(参考 #14673)(#14691)(薛定谔的猫)86bb63b最新消息:删除codeframe和table格式化器 (#14316) (Federico Brigante)f3cb320重大更新:放弃支持 node v10/v13/v15(修复 #14023)(#14592) (薛定谔的猫)
增强功能
🌐 Enhancements
67c0074更新:在平面配置中建议缺失的规则(修复 #14027) (#15074) (Nicholas C. Zakas)cf34e5c更新:space-before-blocks 在 switch 冒号后忽略(修复 #15082)(#15093) (Milos Djermanovic)[14a4739](https://github.com/eslint/eslint/commit/14a4739ab2233acef995a6dde233de05d067a0f3)更新:[no-new-func](/docs/rules/no-new-func)规则捕获MemberExpression的 eval 情况 (#14860) (Mojtaba Samimi)0a1a850更新:在错误日志中包含ruleId(修复 #15037) (#15053) (Ari Perkkiö)88a3952更新:在complexity规则中支持类字段(参考 #14857)(#14957) (Milos Djermanovic)6d1ccb6更新:class-methods-use-this 中的 enforceForClassFields(参考 #14857)(#15018) (YeonJuan)dd10937更新:向 max-classes-per-file 添加了 ignoreExpressions 选项 (#15000) (Josh Goldberg)05ca24c更新:类字段的代码路径分析(修复 #14343) (#14886) (Nicholas C. Zakas)44c6fc8更新:在 func-name-matching 中支持类字段(参考 #14857)(#14964) (Milos Djermanovic)3d7d5fb更新:在eol-last中为never选项报告位置(参考 #12334)(#14840)(Nitin Kumar)f110926更新:修复使用逗号运算符时 no-unused-vars 的误报 (#14928) (Sachin)26b0cd9更新:修复类字段的 no-unreachable 逻辑(参考 #14857)(#14920)(Milos Djermanovic)9052eee更新:检查 no-extra-parens 中的类字段(参考 #14857)(#14906) (Milos Djermanovic)
错误修复
🌐 Bug Fixes
2174a6f修复:require-atomic-updates 属性赋值消息(修复 #15076)(#15109)(Milos Djermanovic)c9efb5f修复:在从禁用指令中移除规则时保留格式 (#15081) (Milos Djermanovic)9bd3d87修复:lines-between-class-members 中的无分号风格(参考 #14857)(#15045)(Milos Djermanovic)f966fe6修复:更新 semi 用于 class-fields(参考 #14857)(#14945)(Nicholas C. Zakas)e9764f3修复: no-undef-init 不应适用于类字段 (参考 #14857) (#14994) (Milos Djermanovic)3409785修复:camelcase ignoreGlobals 不应适用于未定义变量(参考 #14857)(#14966) (Milos Djermanovic)ee1b54f修复:keyword-spacing 私有名称兼容性(参考 #14857)(#14946) (Nicholas C. Zakas)af96584修复:在 operator-linebreak 中处理计算的类字段(参考 #14857)(#14915)(Milos Djermanovic)a773b99修复:使用类字段时no-useless-computed-key的边缘情况(参考 #14857) (#14903) (Milos Djermanovic)cbc43da修复:prefer-destructuring PrivateIdentifier 误报 (参考 #14857) (#14897) (Milos Djermanovic)ccb9a91修复:点表示法 对私有标识符的误报(参考 #14857)(#14898) (Milos Djermanovic)
文档
🌐 Documentation
f885fe0文档:添加关于扩展修复范围的说明和示例(参考 #13706)(#13748)(Milos Djermanovic)3da1509文档:向示例规则添加 jsdoctype注释 (#15085) (Bryan Mishkin)68a49a9文档:更新 Rollup 集成 (#15142) (xiaohai)d867f81文档:从 curly 链接中移除一个点 (#15128) (Mauro Murru)2d654f1文档:添加 .eslintrc.json 示例 (#15087) (Nicolas Mattia)16034f0文档:修复可修复的示例 (#15107) (李启昌)7f2346b文档:更新发布博客文章模板 (#15094) (Nicholas C. Zakas)a744dfa文档:更新 CLA 信息 (#15058) (Brian Warner)91e82f5文档:LintMessage.line 和 column 可能未定义 (#15032) (Brandon Mills)dd56631文档:移除重复的代码路径分析文档 (#15033) (Milos Djermanovic)8c61f5a文档:在 prefer-named-capture-group 中添加关于非捕获分组的信息 (#15009) (Andrzej Wódkiewicz)4338b74文档:添加带有类字段的 no-dupe-class-members 示例(参考 #14857)(#15005)(Milos Djermanovic)88b4e3d文档:清楚说明规则选项如何被覆盖 (修复 #14962) (#14976) (Jake Ob)4165c7f文档:在 Node.js API 文档中澄清 Linter 与 ESLint 的区别(修复 #14953)(#14995) (Brian Bartels)80cfb8f文档:修复迁移指南中的拼写错误 (#14985) (Nitin Kumar)396a0e3文档:使用类字段更新 ScopeManager (#14974) (Milos Djermanovic)6663e7a文档:移除docs脚本(修复 #14288) (#14971)(Nitin Kumar)44f7de5文档:更新已弃用的信息 (#14961) (田川浩崇)a8bcef7文档:将 2021 和 2022 添加到支持的 ECMAScript 版本 (#14952) (coderaiser)b301069文档:修复 prefer-named-capture-group 中的“何时不使用”(参考 #14959)(#14969) (Milos Djermanovic)e98f14d文档:修复 no-implicit-globals.md 中的拼写错误 (#14954) (jwbth)81c60f4文档:记录 ESLint API (#14934) (Sam Chen)28fe19c文档:添加 v8.0.0 迁移指南(修复 #14856)(#14884) (Nicholas C. Zakas)1f5d088文档:为规则 no-import-assign 添加一个示例Object.assign()(#14916) (薛定谔的猫)c4e5802文档:改进no-console的规则细节(修复 #14793)(#14901)(Nitin Kumar)5c3a470文档:在 no-multi-assign 文档中添加类字段(参考 #14857)(#14907)(Milos Djermanovic)d234d89文档:在 func-names 文档中添加类字段(参考 #14857)(#14908)(Milos Djermanovic)e037d61文档:提到在选择器中对斜杠字符进行转义的解决方法 (#14675) (Aria)81f03b6文档:更新许可证版权 (#14877) (Nicholas C. Zakas)
依赖升级
🌐 Dependency Upgrades
7d3f7f0升级:解冻 @eslint/eslintrc(修复 #15036)(#15146)(Brandon Mills)9e5c2e8升级:@eslint/eslintrc@1.0.1 (#15047) (Milos Djermanovic)ec9db63升级:@eslint/eslintrc@1.0.0 (#14865) (Milos Djermanovic)62c6fe7升级:调试 4.0.1 > 4.3.2 (#14892) (sandesh bafna)88db3f5升级:js-yaml到 v4 (#14890) (Bryan Mishkin)ae6072b升级:eslint-visitor-keys到 v3 (#14902) (Bryan Mishkin)e53d8cf升级:markdownlint开发依赖 (#14883) (Bryan Mishkin)d66e941升级: @humanwhocodes/config-array 到 0.6 (#14891) (Bryan Mishkin)
构建相关
🌐 Build Related
71faa38构建:8.0.0-rc.0 的更新日志更新(ESLint Jenkins)d148ffd构建:8.0.0-beta.2 的更新日志更新(ESLint Jenkins)95cc61e构建:8.0.0-beta.1 的更新日志更新(ESLint Jenkins)c74fe08构建:在 CI 中为 Node 16 强制预发布同级依赖 (#14933) (Brandon Mills)027165c构建:8.0.0-beta.0 的更新日志更新(ESLint Jenkins)b8b2d55构建:添加 codeql (#14729) (薛定谔的猫)
杂项
🌐 Chores
fabdf8a任务:从Makefile.js中移除target.all(#15088) (Hirotaka Tagawa / wafuwafu13)05d7140任务:在 Makefile.js 中记录目标全局 (#15084) (Hirotaka Tagawa / wafuwafu13)47be800任务:用 { a = 1 } 模式测试 Property > .key (修复 #14799) (#15072) (Milos Djermanovic)9fb0f70工作项:修复错误报告模板 (#15061) (Milos Djermanovic)f87e199工作任务:清理问题模板 (#15039) (Nicholas C. Zakas)921ba1e杂务:修复失败的 CLI 测试 (#15041) (Milos Djermanovic)143a598工作: 切换问题以使用表单 (#15024) (Nicholas C. Zakas)b4232d4工作:添加测试以显示已废弃规则的废弃通知 (#14989) (TagawaHirotaka)db15183工作: 重构测试的注释 (#14956) (TagawaHirotaka)a79c9f3任务:强制 jsdoc check-line-alignment 从不 (#14955) (Brett Zamir)2d18db6杂项:为在 Linter 中合并parserOptions添加测试 (#14948) (Milos Djermanovic)9a4ae3b任务:应用注释 require-description 并检查类声明 (#14949) (Brett Zamir)8344675任务:修复小错字 (#14951) (铃木宗介)58840ac任务:更新 jsdoc 插件并调整生效规则 (#14814) (Brett Zamir)be334f9任务:修复 Makefile 对 linter.getRules() 的调用 (#14932) (Brandon Mills)0c86b68工作: 替换 Array flat/flatMap 的旧语法 (#14614) (Stephen Wade)6a89f3f任务:忽略yarn-error.log和.pnpm-debug.log(#14925) (Nitin Kumar)3b6cd89事务: 在no-restricted-{imports/modules}规则中添加相对/绝对路径测试 (#14910) (Bryan Mishkin)f984515事务: 在semi中添加关于报告位置的断言 (#14899) (Nitin Kumar)149230c任务:为 Verify Files CI 作业指定 Node 14.x (#14896) (Milos Djermanovic)537cf6a事务: 更新glob-parent(修复 #14879)(#14887) (Nitin Kumar)f7b4a3f任务:将开发依赖更新到最新 (#14624) (薛定谔的猫)
