Oxlint正式发布

我们非常高兴地宣布,oxlint 现已正式上线!这一重要的里程碑表明了我们团队迅速解决和分类问题的能力。

Oxlint 是一个专为捕捉有错误或无用代码而设计的 JavaScript 代码检查工具,而且默认情况下无需任何配置。

使用方法

在当前阶段,oxlint 并不旨在完全替代 ESLint;它是在 ESLint 的速度成为工作流瓶颈时的一种增强工具。

为了获得更快的反馈循环,我们建议在 lint-staged 或 CI 设置中在 ESLint 之前运行 oxlint,考虑到在大型代码库上运行只需要几秒钟。

要在你的 JavaScript/TypeScript 代码库中测试 oxlint,只需在存储库的根目录执行以下命令:

1
$ npx oxlint@latest

或者,查阅安装指南以获取详细的安装说明。

Design

比 ESLint 快 50-100 倍

在实际场景中,Shopify 报告称他们的 CI 中 ESLint 的运行时间从原来的 75 分钟缩短到了仅需 10 秒。

来自 Shopify DX 和 Preact 创作者 Jason Miller 的说法:

oxlint 在 Shopify 中对我们来说是一次巨大的胜利。我们之前的 lint 设置需要 75 分钟才能运行,因此我们在 CI 中将其分散到了 40 多个工作节点中。

相比之下,oxlint 在单个工作节点上大约需要 10 秒来对相同的代码库进行 lint,而且输出更容易解释。

我们甚至在迁移时发现了我们旧设置中隐藏或被跳过的一些错误!

性能的大部分提升来自于 Oxlint 的专门为性能而设计,利用 Rust 和并行处理作为关键因素。

用于正确性的 lint

Oxlint 默认用于识别错误、多余或令人困惑的代码 — 优先考虑正确性而不是不必要的吹毛求疵的规则(默认情况下禁用了性能、可疑、迂腐或样式等规则)。

易用性

设置新的 JavaScript/TypeScript 代码库变得越来越复杂。在你的工具中遇到兼容性问题的可能性很高,可能导致大量浪费时间。

这就是为什么我们设计 oxlint 为开箱即用的零配置;甚至 Node.js 也不是必需的。大多数调整都可以通过命令行进行,从 ESLint 配置文件读取的功能目前正在进行中。

增强诊断

理解 lint 工具的消息可能是具有挑战性的。Oxlint 旨在通过准确定位根本原因并提供有用的消息来简化这个过程 — 消除了阅读冗长的规则文档的需要,节省宝贵的时间。

在 vscode 存储库中运行 oxlint -D perf:

统一的规则

目前 Oxlint 尚未提供插件系统,但我们正在积极整合来自流行插件(如 TypeScript、React、Jest、Unicorn、JSX-a11y 和 Import)的规则。

我们认识到在 JavaScript 生态系统中插件的重要性,同时也在研究基于领域特定语言(DSL)的插件系统。

然而,您可能会喜欢一个独立的代码检查工具 — 无需管理插件依赖列表,避免处理兼容性问题,或者因为版本约束而转向分叉的插件。

祝您愉快的代码检查,愉快的节日季节!

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

原文:https://oxc-project.github.io/blog/2023-12-12-announcing-oxlint.html