Oxc中文文档

2,085 阅读2分钟

开始

概述

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 条规则,其中列表不断增长,包括eslinttypescripteslint-plugin-reacteslint-plugin-jesteslint-plugin-unicorneslint-plugin-jsx-a11y等等。

语言支持

  • Supports:支持:

    • JavaScript 和 TypeScript 的扩展名jsmjscjsjsxtsmtsctstsx
    • <script> .vue.astro.svelte文件的内容。
  • No support for:不支持:

安装

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

zed.dev/extensions?…

持续集成

由于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

www.npmjs.com/package/unp…

Vite plugin

www.npmjs.com/package/vit…

System Requirements

oxlint专为 darwin-arm64、darwin-x64、linux-arm64、linux-x64、win32-arm64 和 win32-x64 构建。