首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ESLint v9.0.0正式发布,变化有点大~~

看起来很难相信,但ESLint新配置系统的RFC绰号为flat-config,于2019年首次编写。直到2022年(8.21.0版)我们将发布一个实验性的opt-in版本的flat-config。从那以后,我们一直在根据社区的反馈进行更改和改进。计划总是允许当前的配置系统(昵称为eslintrc)与平面配置共存一段时间,以便ESLint用户顺利过渡。现在平面配置功能已经完成,我们很高兴与大家分享这个推出计划。

ESLint v9.0.0中的默认平面配置

当ESLint v9.0.0发布时,无论是在今年年底还是明年初,平面配置都将是默认配置系统,我们将不推荐使用eslintrc,但不会删除它。新功能将只针对平面配置添加,因此我们鼓励每个人尽快离开eslintrc,以充分利用v9.0.0提供的所有功能。

这一改变对您意味着什么取决于您如何使用ESLint,如果您有任何问题或疑虑,请访问我们的不一致与团队讨论。

对于CLI用户,这意味着一些事情:

如果要使用eslintrc,则需要设置ESLINT_USE_FLAT_CONFIG系统环境变量到false。执行此操作时,您将在控制台中收到弃用警告。

对于规则开发人员,的规则测试程序类将等于当前扁平规则测试仪类。如果要将任何与解析器相关的选项传递给规则测试,则需要更新这些选项,以符合这些选项的平面配置格式。

你还应该确保你的规则没有使用context.parser选项和上下文地址路径。相反,您应该使用上下文语言选项和context.languageOptions.parser(上下文语言选项解析器),当ESLint在eslintrc模式下运行时,它也会起作用。查看我们的上一个帖子了解更多信息。

对于可共享的配置作者,应更新可共享配置以使用平面配置格式。这包括从对等依赖关系第节,共节package.json包到依赖关系第节。

对于插件开发人员,您应该更新导出的配置使用平面配置格式。插件的其余部分,包括规则和处理器,不需要任何更改。请参阅插件迁移指南了解更多详细信息。

对于API用户,您需要决定是否要在短期内支持这两个配置系统。v9.0.0中的API将按以下方式更改:

这个ESLint公司类现在将等价于扁平线头v8.x中的类。除了少数选项外,这应该是一个透明的更改。

这个传统ESLint类仍然将被提供以允许访问eslintrc功能,但我们不会在v9.x中更新这个类。所有新功能都将仅针对基于平面配置的API实现。

这个FlatESLint类仍然会提供类以避免不必要地破坏现有实现,但我们鼓励您尽快切换到ESLint。

这个shouldUseFlatConfig()方法将返回真的除非ESLINT_USE_FLAT_CONFIG系统环境变量为false.

这个Linter 类默认情况下,类将切换到平面配置模式,但您仍然可以通过指定配置类型构造函数中的选项“eslintrc”,例如:

const linter = new Linter({ configType: "eslintrc" });

ESLint v10.0.0中删除了eslintrc

当ESLint v10.0.0发布时(很可能是2024年底或2025年初),eslintrc配置系统将被完全删除。

对于CLI用户,这意味着一些事情:

这个ESLINT_USE_FLAT_CONFIG系统环境变量将不再被使用,但不会抛出错误。

特定于eslintrc配置文件的CLI选项将被删除。

对于规则开发人员,的上下文地址路径和context.parser选项属性将被删除。

对于可共享的配置作者,v10.0.0中没有其他问题。

对于插件开发人员,v10.0.0中没有其他问题。

对于API用户,您需要停止使用/使用自己的风险入口点。v10.0.0中的API将按以下方式更改:

ESLint公司类现在将是与核心交互的唯一方式。

LegacyESLint类将被删除。

FlatESLint类将被删除。

shouldUseFlatConfig()方法将始终返回true。

Linter类配置类型构造函数选项将无效并引发错误。

结论

我们在新配置系统的开发方面已经取得了长足的进步,还有很长的路要走。这是一个故意缓慢的部署,以确保每个人都可以轻松地更新配置文件,并尽可能减少中断。将整个生态系统转移到一个新的API是我们认真承担的责任,我们希望这在分阶段的推出计划中是显而易见的。您可以通过观看继续关注我们的进度实施问题。如果您需要帮助或对本文中讨论的内容有任何疑问,请开始讨论或路过不一致与团队交谈。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Or-W_3_tcrU8Ykp5oY-6D2bQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com