跳至内容

Linter (oxlint)

  • npm weekly downloads

Oxlint 默认旨在检测错误或无用的代码,无需任何配置。

信息

在当前阶段,oxlint 并非旨在完全取代 ESLint;当 ESLint 的速度成为工作流中的瓶颈时,它将发挥作用,提供改进。

我们建议在 lint-staged 或 CI 设置中,先运行 oxlint,再运行 ESLint,以获得更快的反馈环路,因为它在大型代码库中仅需运行几秒钟。

功能

  • 运行速度比 ESLint 快 50-100 倍,且随 CPU 核心数的增加而扩缩(基准)。
  • 拥有 400 多条规则,且包含来自eslinttypescripteslint-plugin-reacteslint-plugin-jesteslint-plugin-unicorneslint-plugin-jsx-a11y 以及 其他许多规则 的规则列表(该列表还在不断增加中)。
  • 支持

语言支持

安装

在仓库的根目录下直接运行 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

也可以将它保存到包的 package.json 文件中

sh
$ npm add -D oxlint
sh
$ pnpm add -D oxlint
sh
$ yarn add -D oxlint
sh
$ bun add -D oxlint

oxlint 无需 Node.js 也能使用,可从 最新的 GitHub 版本 中下载二进制文件。

命令行界面

请参阅 命令行界面

配置文件

请参阅 配置文件

集成

ESLint

如果你想要将 oxlint 用在你仍需使用 ESLint 的项目中,可使用 eslint-plugin-oxlint 来关闭 oxlint 已支持的 ESLint 规则。这样一来,你便能同时享受 oxlint 的速度,以及 ESLint 的功效。

lint-staged

package.json
json
{
  "lint-staged": {
    "**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx,vue,astro,svelte}": "oxlint"
  }
}

VSCode 扩展

从以下位置下载官方 VSCode 扩展

Zed 扩展

https://zed.rust-lang.net.cn/extensions?q=oxc

持续集成

由于 oxlint 的运行只需几秒,我们建议在 ESLint 前运行 oxlint 来加快反馈循环。

GitHub 操作

yaml
jobs:
  oxlint:
    name: Lint JS
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx --yes [email protected] --deny-warnings # change to the latest release

建议固定版本,否则在发布新版本后,CI 可能出现故障。

pre-commit

.pre-commit-hooks.yaml
yaml
repos:
  - repo: https://github.com/oxc-project/mirrors-oxlint
    rev: v0.0.0 # change to the latest version
    hooks:
      - id: oxlint
        verbose: true

Unplugin

https://npmjs.net.cn/package/unplugin-oxlint

Vite 插件

https://npmjs.net.cn/package/vite-plugin-oxlint

系统要求 ​

oxlint 适用于 darwin-arm64、darwin-x64、linux-arm64、linux-x64、win32-arm64 和 win32-x64。

在 MIT 许可下发布。