跳至内容

Oxlint 已正式上市

我们非常高兴地宣布 oxlint 已正式上市!这一里程碑标志着我们的团队能够迅速解决和分流问题。

Oxlint 是一款 JavaScript linter,旨在捕获错误或无用的代码,且无需默认配置。

如何使用

在此阶段,oxlint 并非旨在完全取代 ESLint;当 ESLint 的迟缓在你的工作流中成为瓶颈时,它可作为增强项。

为了实现更快的反馈循环,我们建议在你的 lint-staged 或 CI 设置中,在 ESLint 之前运行 oxlint,因为在大型代码库中运行它只需要几秒钟。

要在你的 JavaScript/TypeScript 代码库中测试 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

或者,请参阅 安装指南 了解详细说明。

设计

比 ESLint 快 50 到 100 倍

在实际场景中,Shopify 报告称他们 75 分钟的 ESLint CI 运行现在只需 10 秒。

来自 Jason Miller, Shopify DX 和 Preact 的创建者

oxlint 已成为我们在 Shopify 的一项重大胜利。我们之前的 linting 设置需要 75 分钟才能运行,因此我们在 CI 中将其分散到 40 多个工作进程中。

相比之下,oxlint 在单个工作进程上对同一代码库进行 linting 大约需要 10 秒,并且输出更容易解释。

当我们迁移时,我们甚至捕获到了几个在我们旧设置中隐藏或跳过的 Bug!

大部分性能提升源于 Oxlint 被特意设计用于性能,利用 Rust 和并行处理作为关键因素。

lint 检查是否正确

Oxlint 默认识别有错误、多余或令人困惑的代码——优先更正正确性,而不是不必要的吹毛求疵规则(归类为 perfsuspiciouspedanticstyle),这些规则默认会被禁用。

易用性

设置新的 JavaScript/TypeScript 代码库变得越来越复杂。你的工具之间极有可能遇到兼容性问题,可能导致浪费数小时时间。

因此我们设计 oxlint 开箱即用,零配置;甚至不需要 Node.js。大多数调整可以通过命令行进行,而且目前正在进行从 ESLint 配置文件读取的内容。

增强的诊断

了解 linter 消息可能很有挑战性。Oxlint 旨在通过查明根本原因并提供有帮助的信息来简化此过程——无需阅读冗长的规则文档,节省宝贵的时间。

vscode 存储库 中运行 oxlint -D perf

合并规则

Oxlint 尚未提供插件系统,但我们正在积极合并来自热门插件的规则,如 TypeScript、React、Jest、Unicorn、JSX-a11y 和 Import。

我们认识到插件在 JavaScript 生态系统中的重要性,并且也在研究基于 DSL 的插件系统。

但是,你可能会喜欢独立的 linter——无需管理插件依赖项列表、遍历 兼容性问题,或 由于版本约束而求助于分叉插件


愉快地进行 linting,度过一个欢乐的假期季!

要开始使用,请按照 安装指南 操作,了解有关 oxc 项目 的更多信息,或在 Hacker News 上讨论。

在 MIT 许可证下发布。