Skip to content

Oxlint Beta

本文章宣布 Oxlint 进入公开测试版。 自此之后,Oxlint 已发布稳定版本 1.0!请参阅 Oxlint v1.0 稳定版公告,了解最新功能和改进。

我们非常激动地宣布,经过社区超过一年的开发,Oxlint 现已进入公开测试阶段!

这一里程碑标志着在功能完整性、性能和稳定性方面迈出了重要一步。

如何使用

现阶段,Oxlint 可用于小型到中型项目中完全替代 ESLint。

对于大型项目,我们的建议是通过 eslint-plugin-oxlint 关闭 ESLint 规则,并在本地或 CI 环境中优先运行 Oxlint,以获得更快的反馈循环。

要测试你的代码库中的 Oxlint,可以在代码库根目录下使用任意包管理器:

sh
$ npx oxlint@latest
sh
$ pnpm dlx oxlint@latest
sh
$ yarn dlx oxlint@latest
sh
$ bunx oxlint@latest
sh
$ deno run npm:oxlint@latest

关于如何使用 Oxlint 以及将其集成到你的项目或编辑器中的详细说明,请参阅 安装指南

自正式发布以来的新功能亮点

  • 显著的性能提升,相较于上一版本最快可达两倍速度
  • 内置超过 500 条规则,无需额外安装
  • 大量来自 typescriptunicornreactreact-perfnextjsimportjsdocjsx-a11ynodepromisejestvitest 插件的规则现已完整支持。
  • 支持通过 .oxlintrc.json 配置文件 进行配置,包括 嵌套配置文件、使用 extends 在文件间共享配置、对特定文件应用 overrides 等。
  • 无需额外配置即可对 .astro.svelte.vue 文件中的 <script> 内容进行检查。
  • 支持对文件应用 自动修复 和建议。

更多规则,更强性能

我们致力于让 Oxlint 功能更完善,支持众多最常用的 ESLint 规则和插件,同时我们也大幅提升了 Oxlint 的执行速度。

最初的 Oxlint 通用可用性(GA)版本 共包含 205 条规则,其中 70 条为默认启用。本次测试版共包含 502 条规则,其中 99 条默认启用(默认规则数量增长了 41%)。

规则类型规则数量(GA)规则数量(beta)增加
默认规则7099+29 条规则
正确性88173+88 条规则
性能09+9 条规则
限制1564+49 条规则
严格4379+36 条规则
风格38137+99 条规则
警告728+21 条规则
总规则数205502+297 条规则

尽管新增了大量默认启用的规则,但 Oxlint 相比以往任何时候都更快。以下是一些在流行仓库上的 基准测试 结果:

仓库文件数量诊断耗时(GA)诊断耗时(beta)提升
elastic/kibana68,5916.02s3.11s1.94x
microsoft/vscode5,7031.697s0.792s2.14x
vitest-dev/vitest1,732105ms50ms2.1x
vuejs/core1,063217ms89ms2.44x

发展路线图

用户最常请求的功能之一是支持现有的自定义 ESLint 插件。我们一直在积极开发该功能的前置条件,并致力于实现基于 JavaScript 编写的高性能插件支持。我们希望该功能能在下一个主要版本中上线,并将在不久的将来提供更多相关信息。

我们还计划持续改进 IDE/编辑器集成,进一步增强对 VSCode、Zed、coc.nvim 和 IntelliJ 插件的支持。

致谢

没有超过 200 名项目的贡献者,Oxlint 测试版无法实现。

特别感谢: