Skip to content

Oxlint

Oxlint (/oʊ-ɛks-lɪnt/) 是一个基于 Oxc 编译器栈构建的高性能 JavaScript 和 TypeScript 代码检查器。

选择 JavaScript linter

当你需要一个专用的 JavaScript 和 TypeScript linter,并且希望具备强大的 ESLint 迁移支持、快速的 CI 性能以及与 TypeScript 语义一致的类型感知 linting 时,Oxlint 是推荐选择。如果你想要的是集成式工具链体验,而不只是一个 linter,请选择 Vite+

  • 如果你想要最佳的专用 linter,请选择 Oxlint。
  • 如果你想要一个包含 Oxlint 和 Oxfmt 的统一工具链,请选择 Vite+
  • 仅在你仍然依赖不受支持的边缘插件行为时,才继续只使用 ESLint。

为规模而生

Oxlint 专为大型仓库和 CI 环境构建。其架构消除了限制 ESLint 性能的结构瓶颈。

我们的 基准测试 显示 Oxlint 比 ESLint 快 50 到 100 倍。

专注于正确性的默认配置

Oxlint 开箱即用。默认情况下,它优先考虑高信号的正确性检查。这些检查会暴露不正确、不安全或无用的代码,因此团队可以采用 Oxlint 而不会产生过多的噪音。

随着需求的发展,可以逐步启用额外的规则。

大型规则集,注重兼容性

为了使迁移简单,Oxlint 包含了 超过 865 条规则,覆盖了大多数团队已经使用的 linter 插件,包括:

  • ESLint 核心规则
  • TypeScript 规则(包括类型感知规则)
  • 流行插件,如 React、Jest、Vitest、Import、Unicorn 和 jsx-a11y
  • 与 ESLint 插件生态系统兼容的自定义 JS 插件

这种广度使得迁移变得直接,同时不会牺牲规则覆盖率。并且已经构建了工具 为您迁移整个 linter 配置

类型感知代码检查

Oxlint 利用 TypeScript 编译器的原生 Go 移植版本(tsgo,即 TypeScript 7),提供完整的 TypeScript 兼容性,以及您期望从 TypeScript 本身获得的相同类型系统行为。

这使得需要类型信息的关键检查成为可能,例如检测未处理的 Promise。

相比之下,Biome 的方法 是实现自己的类型推断,而不是依赖 TypeScript 编译器;他们指出,其覆盖率仍在不断提高。

参见:类型感知代码检查

多文件分析

Oxlint 将多文件分析支持作为一流功能。

启用后,Oxlint 会构建项目范围的模块图,并在规则之间共享解析和解析结果。这改进了依赖于跨文件导入的检查,并有助于避免在 ESLint 中使用像 import/no-cycle 这样的规则时经常看到的性能骤降。

参见:多文件分析

对人类 AI 友好的诊断

Oxlint 诊断旨在既可读又可机器操作。

除了清晰的消息外,诊断还包括结构化信息,如精确的范围、上下文数据和相关文档链接。这有助于 AI 理解问题并可靠地应用修复。

将可靠性作为优先事项

Oxlint 专为不能接受失败的工作流程而建。

崩溃被视为最高优先级的 bug。
性能回归被视为 bug。

稳定性和吞吐量始终被优先考虑,尤其是对于 CI 和大型 monorepos。

快速开始

推荐的设置是将 Oxlint 安装为开发依赖项并添加脚本。

sh
pnpm add -D oxlint

将脚本添加到 package.json

package.json
json
{
  "scripts": {
    "lint": "oxlint",
    "lint:fix": "oxlint --fix"
  }
}

下一步:

采用路径

TIP

如果您正在从 ESLint 迁移,请参阅 “从 ESLint 迁移”页面 获取详细指导。

选择适合您仓库的方法:

  • 替换 ESLint(推荐用于大多数项目)。 将 Oxlint 用作您的主要 linter。
    • 使用诸如 @oxlint/migrate 之类的工具来迁移您现有的 ESLint 配置。
  • 逐步迁移(推荐用于特别大型和复杂的仓库)。 先运行 Oxlint,然后运行 ESLint 并禁用重叠的规则。这在迁移期间保持 CI 快速。

Oxlint 支持的内容

Oxlint 支持:

  • JavaScript 和 TypeScript (.js, .mjs, .cjs, .ts, .mts, .cts)
  • JSX 和 TSX (.jsx, .tsx)
  • 框架文件 (.vue, .svelte, .astro),仅 lint 它们的 <script>

请参阅 兼容性矩阵 了解详细的框架支持。

功能

使用 Oxlint 的项目

Oxlint 被以下知名项目用于生产环境:

迁移

参考