Linter (oxlint)
Oxlint 默认旨在检测错误或无用的代码,无需任何配置。
信息
在当前阶段,oxlint 并非旨在完全取代 ESLint;当 ESLint 的速度成为工作流中的瓶颈时,它将发挥作用,提供改进。
我们建议在 lint-staged 或 CI 设置中,先运行 oxlint,再运行 ESLint,以获得更快的反馈环路,因为它在大型代码库中仅需运行几秒钟。
功能
- 运行速度比 ESLint 快 50-100 倍,且随 CPU 核心数的增加而扩缩(基准)。
- 拥有 400 多条规则,且包含来自
eslint、typescript、eslint-plugin-react、eslint-plugin-jest、eslint-plugin-unicorn、eslint-plugin-jsx-a11y以及 其他许多规则 的规则列表(该列表还在不断增加中)。 - 支持
- .eslintignore.
- ESLint 注释禁用.
json格式中的 部分 ESLint v8 配置
语言支持
- 支持
- 根据其扩展名(
js、mjs、cjs、jsx、ts、mts、cts和tsx)支持 JavaScript 和 TypeScript。 .vue、.astro和.svelte中的<script>文件的内容。
- 根据其扩展名(
- 不支持
安装
在仓库的根目录下直接运行 oxlint
sh
$ npx oxlint@latestsh
$ pnpm dlx oxlint@latestsh
$ yarn dlx oxlint@latestsh
$ bunx oxlint@latestsh
$ deno run npm:oxlint@latest也可以将它保存到包的 package.json 文件中
sh
$ npm add -D oxlintsh
$ pnpm add -D oxlintsh
$ yarn add -D oxlintsh
$ bun add -D oxlintoxlint 无需 Node.js 也能使用,可从 最新的 GitHub 版本 中下载二进制文件。
命令行界面
请参阅 命令行界面
配置文件
请参阅 配置文件
集成
ESLint
如果你想要将 oxlint 用在你仍需使用 ESLint 的项目中,可使用 eslint-plugin-oxlint 来关闭 oxlint 已支持的 ESLint 规则。这样一来,你便能同时享受 oxlint 的速度,以及 ESLint 的功效。
lint-staged
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 oxlint@0.0.0 --deny-warnings # change to the latest release建议固定版本,否则在发布新版本后,CI 可能出现故障。
pre-commit
yaml
repos:
- repo: https://github.com/oxc-project/mirrors-oxlint
rev: v0.0.0 # change to the latest version
hooks:
- id: oxlint
verbose: trueUnplugin
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。