oxlint 入門:ESLint より50倍速いJSリンターをnpxで試す

スポンサーリンク

oxlint 入門:ESLint より50倍速いJSリンターをnpxで試す

設定なしでもすぐ動かせます。

npx oxlint@latest src/

これだけでプロジェクトの JavaScript / TypeScript ファイルを静的解析できます。インストール不要で試せるので、既存プロジェクトへの導入ハードルが低いのが特徴です。


oxlint とは

oxlint は Oxc(JavaScript Oxidation Compiler) プロジェクトが開発する JavaScript / TypeScript 向けのリンターです。Rust 製で、ESLint と比べて 50〜100 倍速いとされています。

項目 oxlint ESLint
実装言語 Rust JavaScript
速度 50〜100倍速い ベースライン
設定 不要(ゼロコンフィグ) 要設定
プラグイン 限定的 豊富
TypeScript ビルトイン対応 @typescript-eslint が必要

大規模なコードベースでも数秒以内に解析が終わるため、CI や pre-commit フックでの利用に適しています。


インストール

プロジェクトに追加する場合は npm install でインストールします。

# npm
npm install --save-dev oxlint

# pnpm
pnpm add -D oxlint

package.json にスクリプトを追加しておくと便利です。

{
  "scripts": {
    "lint": "oxlint src/"
  }
}

基本の使い方

解析を実行する

# src/ 以下を解析
npx oxlint src/

# カレントディレクトリ以下を解析
npx oxlint .

# 特定のファイルだけ
npx oxlint src/index.ts

出力例:

× [typescript] no-unused-vars: 'foo' is defined but never used
  ╭─[src/index.ts:3:7]
3 │ const foo = 'bar';
  ╰──

自動修正

--fix フラグで自動修正できます。

npx oxlint --fix src/

設定ファイル(.oxlintrc.json)

プロジェクトルートに .oxlintrc.json を置くとルールを細かく設定できます。

{
  "rules": {
    "no-unused-vars": "error",
    "no-console": "warn",
    "eqeqeq": "error"
  }
}

特定のファイルをスキップしたい場合は ignorePatterns を使います。

{
  "ignorePatterns": ["dist/", "node_modules/", "*.test.ts"],
  "rules": {
    "no-unused-vars": "error"
  }
}

TypeScript プラグインを有効にする

TypeScript 固有のルール(@typescript-eslint 相当)を使う場合はプラグインを指定します。

{
  "plugins": ["typescript"],
  "rules": {
    "typescript/no-explicit-any": "warn",
    "typescript/no-unused-vars": "error"
  }
}

ESLint と併用する

oxlint は ESLint の代替ではなく、高速プレチェックとして ESLint と組み合わせて使えます。処理の重い型チェックルール(@typescript-eslint/no-floating-promises など)は ESLint に任せ、oxlint は軽量ルールを高速に実行するという使い方です。

# CI 上での組み合わせ例
oxlint src/ && eslint src/

oxlint が通らない場合は ESLint まで到達しないため、フィードバックが早くなります。


Biome との使い分け

どちらも Rust 製の高速ツールですが、用途が異なります。

ツール 特徴 向いているケース
oxlint リントのみ。ESLint ルールとの互換性重視 ESLint からの段階的移行・既存ルールを維持したい
Biome リント+フォーマットの一体型 新規プロジェクト・ESLint + Prettier をまとめて置き換えたい

Biome については「Biome lint で console.log を残したい時の3つの対処法」も参照してください。


よく使うコマンドまとめ

コマンド 説明
npx oxlint src/ src/ 以下を解析(インストール不要)
npx oxlint . カレントディレクトリ以下を解析
npx oxlint --fix src/ 自動修正
npx oxlint --deny-warnings src/ 警告もエラーとして扱う
npx oxlint --quiet src/ エラーのみ表示(警告を非表示)

TypeScript ESLint の flat config 設定については「TypeScript ESLint 設定入門:flat config で型チェックを有効にする」も参照してください。