开始
概述
JavaScript Oxidation 编译器 (Oxc) 是一组高性能工具,适用于用 Rust 编写的 JavaScript 语言。
我们的重点在于为 JavaScript 构建基本的编译器工具:parser、linter、formatter、transpiler、minifier 和 resolver。
我们的目标是作为VoidZero的一部分为JavaScript 提供下一代工具链。
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等等。
-
Supports支持
- .eslintignore.
- ESLint comment disabling.
- Partial ESLint v8 Configurationin
jsonformat.
语言支持
-
Supports:支持:
- JavaScript 和 TypeScript 的扩展名
js、mjs、cjs、jsx、ts、mts、cts和tsx。 <script>.vue、.astro和.svelte文件的内容。
- JavaScript 和 TypeScript 的扩展名
-
No support for:不支持:
- type-aware rulesdefined by
typescript-eslint. - stylistic rules.
- type-aware rulesdefined by
安装
直接在仓库的根目录下运行oxlint:
# npm
npx oxlint@latest
#pnpm
pnpm dlx oxlint@latest
#yarn
yarn dlx oxlint@latest
#bun
bunx oxlint@latest
#deno
deno run npm:oxlint@latest
或将其保存到您的 package.json:
#npm
npm add -D oxlint
#pnpm
pnpm add -D oxlint
#yarn
yarn add -D oxlint
#bun
bun add -D oxlint
oxlint不需要Node.js,二进制文件可以从最新的 GitHub 版本下载。
命令行界面
请参阅命令行界面
配置文件
请参阅配置文件
集成
Eslint
如果你正在寻找一种方法在仍然需要 ESLint 的项目中使用 oxlint,你可以使用eslint-plugin-oxlint来关闭 oxlint 已经支持的 ESLint 规则。因此,您可以在使用 ESLint 的同时享受 oxlint 的速度。
lint-staged 的
{
"lint-staged": {
"**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx,vue,astro,svelte}": "oxlint"
}
}
VSCode 扩展
Download the official VSCode extension from the从
Zed Extension
持续集成
由于oxlint只需要几秒钟即可运行,我们建议在 ESLint 之前运行oxlint以加快反馈循环。
GitHub Actions
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
repos:
- repo: https://github.com/oxc-project/mirrors-oxlint
rev: v0.0.0 # change to the latest version
hooks:
- id: oxlint
verbose: true
Unplugin
Vite plugin
System Requirements
oxlint专为 darwin-arm64、darwin-x64、linux-arm64、linux-x64、win32-arm64 和 win32-x64 构建。