我们非常高兴地宣布,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