
Oxlint,一个基于 Rust 的 JavaScript 和 TypeScript 静态检查器,作为Oxc工具链的一部分开发,已经发布了其第一个稳定版本。1.0 里程碑带来了快速检测、广泛的规则覆盖和迁移工具的组合,旨在使开源项目和大型企业的采用都能变得简单直接。
Oxlint v1.0 提供了超过520个支持的 ESLint 规则、多文件分析能力以及零配置默认设置。项目的维护者声称,在实际场景中,性能比ESLint提高了 50-100 倍,基准测试显示,以前需要几分钟才能检测的代码库现在在不到一秒钟内就完成了。
Oxlint 可以高效地处理多文件规则。例如,import/no-cycle和oxc/no-barrel-file,这些规则需要解析许多文件之间的依赖关系。在 Airbnb 的内部测试中,Oxlint 能够在仅 7 秒内对包含超过 126,000 个文件的存储库运行这些规则。由于超时,ESLint 在相同环境中无法完成相同的任务。
Oxlint 的开箱即用体验被设计得很简单,目前只能在中小型项目中完全取代 ESLint。
开发人员可以通过一个简单的命令开始使用:
Oxlint 的零配置模式是为快速采用而设计的,使开发人员能够立即开始检测。对于需要更多自定义的团队,Oxlint 提供了支持 .oxlintrc.json
配置文件,模仿 ESLint 的 v8 平面配置系统。这种方法支持嵌套设置、规则覆盖和可扩展的共享配置。
为了简化迁移,提供了oxlint-migrate和eslint-plugin-oxlint等工具,使开发人员能够转换现有的 ESLint 设置,甚至在逐步过渡期间并行运行两个静态检查器。建议大型项目使用 eslint-plugin-oxlint 插件,该插件将会关闭任何已经被 Oxlint 支持的 ESLint 规则,允许两者同时运行,直到你能够完全迁移。
该静态检查器支持超过 520 个规则,并且规则集还在不断增长。新规则正在从 eslint core、typescript-eslint、eslint-plugin-react、eslint-plugin-vitest 等来源中进行审查和添加。完整的列表可以在GitHub的产品计划上找到。
开发者的反馈大多是积极的。在 Reddit 上,一位用户评论道:
我刚刚从 ESLint 迁移到我的一个项目中,体验非常好。它非常快,我可以用一个依赖库替换大约 5 或 6 个依赖项,配置格式也容易得多。以前我决定不使用 Biome,因为 Formatter 还不支持 Tailwind 的类排序,现在我正在用 Oxlint 和 Prettier。
Oxlint 的性能归功于它基于 Rust 的架构和共享的 Oxc 解析器,根据他们的基准测试,它比 ESLint 快 50-100 倍,甚至比Biome快 2 倍。
扩展已经可以在各种 IDE 中使用,如VSCode、 IntelliJ和WebStorm,以及Zed Editor。
维护者指出,Oxlint 目前不支持类型感知规则,尽管未来的版本正在考虑这一点。还计划支持自定义 ESLint 样式的插件。
Oxlint 作为 npm 上的一个开源包提供,可以集成到本地开发、CI/CD 工作流程或 monorepos 中。在 ooxc.rs上有完整的文档和迁移指南,以及关于 Oxc 工具链中其他工具的更多信息。
原文链接:
评论