👇 今日要闻
打破信息壁垒,走近全球前端。Hello 大家好,我是林语冰。
ESLint 生态近期有不少变动,我汇总了官方版本升级和 ESLint 插件的核心内容,包括:
- ESLint 团队官宣
v10.5次版本正式发布 - antfu 大佬推荐的插件更新到了
v67主版本 - 社区奇葩的函数式编程插件极端且抽象

👉 ESLint 10.5 官宣
ESLint 团队官宣 v10.5 次版本正式发布,更新了几个补丁功能。
以前,max-depth 规则在计算条件分支的嵌套深度时有点猪头。
举个栗子,当 max-depth 的最大值配置为 1 时,ESLint 无法完美规避 if 语句嵌套导致的"条件地狱":

这里,当代码进入 d 的条件分支时,if 语句已经嵌套了两层,即使设置了嵌套深度最大值为 1,这种特殊情况下 ESLint 也不会报警。
ESLint 10.5 修正了这个 bug,现在当 if 语句的嵌套深度不满足 max-depth 配置时,ESLint 能够精准识别。

另一个 bug 也类似,max-nested-callbacks 规则在计算回调函数的嵌套深度时有点麻瓜。
举个栗子,当 max-nested-callbacks 的最大值配置为 2 时,ESLint 无法完美规避函数嵌套导致的"回调地狱":

以前,ESLint 在计算函数的嵌套深度时不准确,所以不会触发 max-nested-callbacks 规则报警。
ESLint 10.5 也修正了这个 bug,现在当嵌套函数滋生"回调套娃"时,ESLint 会先判断当前函数是否位于回调函数栈顶,精准识别问题并报警。
此外,ESLint 团队还改善了规则报错的显示范围:
no-with规则报错时,红色波浪线不再高亮整个with语句max-statements规则报错时,红色波浪线不再高亮整个函数体max-lines-per-function规则报错时,红色波浪线不再高亮整个函数体

可以看到,现在 UI 的报错提示不会一大片一大片的飘红,而只在关键地方高亮。这样,程序员能快速定位是哪个规则导致的问题,明显改善了开发体验。
👉 ESLint 插件更新
eslint-plugin-unicorn 是流行的 ESLint 社区插件,它额外成功了 200+ 条代码质保规则。
这个插件被"Vitest 之父 "兼"UnoCSS 之父 " antfu 大佬采用,最近发布了第 67 个主版本。
新版本更新了大量规则,举个栗子,今年 JS 的最新功能 Temporal 是 Date 的替代品,它完美规避了 Date 的设计屎山,彻底解决了 Date 的历史包袱。
eslint-plugin-unicorn 支持 prefer-temporal 规则,优先使用 Temporal 替代 Date:

这里,Date 的月份索引类似于数组,从 0 开始算起,所以没有 12 月份,比较反直觉。Temporal 则采用符合自然规律的 API,开发者可以更直观地使用日期和时间。
这个社区插件大多数规则适用于 JS 和 TS,少部分规则还涉及 CSS、HTML、JSON 和 Markdown 的代码质检。
举个栗子,prefer-https 规则要求优先使用 HTTPS 而非 HTTP:

可以看到,prefer-https 规则要求优先使用 HTTPS,这样可以避免通过不安全的协议向公共资源发送 URL。
此外,某些特殊情况下该规则允许你使用 HTTP,比如:

eslint-plugin-unicorn 社区插件还有大量超夯的规则,大家可以把它集成到自己的 ESLint 配置中。
👉 函数式编程插件
eslint-plugin-functional 是一个 ESLint 社区插件,用于禁用 JS 和 TS 中的可变操作,并促进函数式编程。
这个插件比较极端且抽象,新手不友好,但熟悉函数式编程的小伙伴可以关注一下,它最近更新了第 10 个主版本。
举个栗子,在函数式编程中,变量 不应该是 可变 的:

这个插件的 no-let 规则可以和 ESLint 内置规则 no-var 结合使用,禁用 var 或 let 声明变量,强制所有变量声明为 const。
同理,它也排斥其他编程范式,比如面向对象编程:

这个插件的 no-classes 规则禁止 class 声明类,当你采用面向对象等其他非函数式编程范式时,就会直接报错。
这个插件的极端之处在于,它不像 ESLint 那样可以灵活配置 const 优先的风格,而只允许使用 const;它也不允许 JS 发挥混合编程范式的优势,只允许拥抱函数式编程风格。
这个插件只适用于采用部分规则,或者当你刚开始接触函数式编程时,用来培养"代码洁癖"。总之,这个插件和 JS 生态格格不入,毕竟 JS 不是纯粹的函数式编程语言。
👇 重点总结
今天我们汇总了 ESLint 近期的动态大全,包括:
- ESLint 10.5 正式发布,更新了补丁功能,改良了报错提示
eslint-plugin-unicorn插件发布了v67主版本,新规则对齐了 JS 生态,推荐使用eslint-plugin-function插件发布了v10主版本,比较极端且抽象,新人慎用
👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。
🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:
- 🔗 ESLint 10.5 :eslint.org/blog/2026/0...
- 🔗 ESLint 社区插件 :github.com/sindresorhu...
- 🔗 函数式编程插件 :github.com/eslint-func...