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@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
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
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。