Oxlint 比 ESLint 快 50-100 倍,但最关键的不是速度——type-aware linting 把这件事彻底变了
我配了三年 ESLint,每次跑 lint 要等十几秒,今天发现 Oxlint 把这件事彻底变了——不是快一点,是 50 到 100 倍。
这个差距不是优化出来的,是从根上换了一条路。ESLint 跑在 Node.js 上,每次检查都要走一遍 V8 的解析流程;Oxlint 用 Rust 写的,Oxc 解析器直接输出 AST,然后并行走多核,不用等 JavaScript 引擎慢慢嚼。
但比速度更值说的是 type-aware 这件事。
以前 ESLint 做类型检查要靠 @typescript-eslint,它本质上是在 ESLint 外面套了个 wrapper,每次都要把 TypeScript 编译一遍再检查。Oxlint 的 type-aware linting 不一样——它直接复用 Oxc 自己的类型信息,不用单独跑一遍 tsc。规则在解析的时候就带上了类型上下文,检查 no-unused-vars 能知道你那个变量到底是干什么用的,检查 import 顺序能看懂你在用什么模块。
这个区别在实战里感受很明显。拿一个万级模块的中型项目跑一遍,ESLint 要 40 秒,Oxlint 不到 1 秒。更重要的是那些依赖类型信息的规则——ESLint 跑的时候这类规则经常因为性能原因被关掉,Oxlint 开着完全没压力。
迁移成本这件事也比我想象的低。tsgolint 把最常用的 TypeScript 规则都搬过来了,Biome 的规则也能直接在 Oxlint 里用。如果你在用 Vite 8+,Rolldown 已经内置了 Oxlint 集成,连配置都不用单独写。
下一步很简单:先拿 oxlint CLI 跑一遍你的项目,看看报告,然后决定哪些规则要先开起来。Node.js 20+ 就能跑,不用装 Rust 环境。
速度差 50 到 100 倍这件事,我建议你亲自跑一遍感受一下——光是等 lint 结果那几秒到几十秒的差别,就够让你想换工具了。
评论区
登录后可评论。