mcpField
O
oxlint

oxlint

github.com/midudevテスト・品質7.0k61 回インストール1 週間前に更新
リポジトリ

oxlint について

JavaScript と TypeScript のプロジェクトで oxlint を使うためのスキルです。プロジェクトの判定、設定、診断、安全な自動修正、CI 向け出力、ESLint からの移行を扱います。

主な機能

  1. 01JavaScript・TypeScript の lint
  2. 02ルールとプラグインの設定
  3. 03安全な自動修正
  4. 04CI 向け出力形式
  5. 05ESLint 移行ガイド

活用シーン

  1. 01変更後のコードチェック
  2. 02指定したソースファイルの lint
  3. 03モノレポのルール設定
  4. 04ESLint 設定の移行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/midudev/autoskills --skill oxlint

インストール後、Claude Code で/oxlintを入力して読み込まれたか確認します。

詳細

Oxlint — 高性能 JS/TS リンター

Oxlint は ESLint より 50~100 倍高速です。ESLint コア、TypeScript、React、Jest、Unicorn、jsx-a11y などを網羅する 690 以上のルールが用意されています。デフォルトでは、誤りや危険、無意味なコードを検出する、信頼性の高い正確性チェックを優先します。そのため、誤検知に悩まされることなくチームで導入できます。

検出

リンティングの前に、次のいずれかがあるか確認し、プロジェクトで oxlint が使われていることを確かめてください。

  • package.json の devDependencies/dependencies に oxlint がある
  • プロジェクトのルートに .oxlintrc.json ファイルがある
  • プロジェクトのルートに oxlint.config.ts ファイルがある
  • package.json の oxlint または lint スクリプトで oxlint が参照されている

いずれも存在しない場合、そのプロジェクトでは oxlint を使用していません。実行しないでください。

Oxlint の実行

コード変更後

作業内容を確認するため、oxlint を実行してください。プロジェクトの npm スクリプトがある場合は、そちらを優先してください。

# If package.json has a lint script using oxlint
npm run lint

# Otherwise, run directly
npx oxlint
問題の自動修正
npx oxlint --fix

安全な自動修正には --fix を使用してください。ユーザーから明示的に依頼された場合を除き、--fix-dangerously は避けてください。安全でない変換が適用される可能性があります。

特定のファイルのリンティング

編集したファイルが少数の場合は、それらだけをリンティングできます。

npx oxlint src/components/Button.tsx src/utils/helpers.ts
出力の解釈

Oxlint は、たとえば (no-unused-vars) のように、ルール名を括弧内に含む診断を出力します。修正する際は、次の手順に従ってください。

  1. 診断メッセージを注意深く読みます。oxlint は正確で、対処につながる情報を提示します
  2. ルールを抑制するのではなく、根本的なコードの問題を修正します
  3. 診断が実際に誤検知である場合の最終手段としてのみ、// oxlint-ignore コメントを追加します
出力形式

CI やツールとの連携には、次のようにします。

npx oxlint --format json        # Machine-readable JSON
npx oxlint --format github      # GitHub Actions annotations
npx oxlint --format unix        # Simple one-line-per-error format

設定

設定ファイルの作成
npx oxlint --init

これにより、.oxlintrc.json のひな形が生成されます。

設定ファイルの形式(.oxlintrc.json)

設定ファイルでは JSONC(コメント付き JSON)を使用します。主なセクションは次のとおりです。

{
  // Enable/disable individual rules with severity levels
  "rules": {
    "no-unused-vars": "error",
    "no-console": "warn",
    "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }]
  },

  // Enable groups of related rules by category
  "categories": {
    "correctness": "error",   // Definitely-wrong code
    "suspicious": "warn",     // Probably-wrong code
    "pedantic": "off",        // Opinionated style checks
    "perf": "warn",           // Performance anti-patterns
    "style": "off",           // Cosmetic preferences
    "restriction": "off",     // Extra-strict rules (opt-in)
    "nursery": "off"          // Unstable/experimental rules
  },

  // Plugins to enable (setting this overwrites defaults, so list all you want)
  "plugins": ["typescript", "unicorn", "oxc"],

  // File-specific overrides
  "overrides": [
    {
      "files": ["**/*.test.{ts,tsx}"],
      "rules": { "no-console": "off" }
    },
    {
      "files": ["scripts/**"],
      "rules": { "no-console": "off" }
    }
  ],

  // Environment globals
  "env": {
    "browser": true,
    "node": true
  },

  // Plugin-wide settings
  "settings": {
    "react": {
      "linkComponents": [{ "name": "Link", "linkAttribute": "to" }]
    },
    "jsx-a11y": {
      "components": { "Link": "a", "Button": "button" }
    }
  },

  // Type-aware linting (requires tsconfig)
  "options": {
    "typeAware": true
  }
}
ルールの重大度レベル
  • "off" / "allow" — ルールを無効にします
  • "warn" — 報告しますが、ビルドは失敗させません
  • "error" / "deny" — 報告し、ゼロ以外の終了コードで終了します

一意なルール名では、プラグインの接頭辞を省略できます。"no-console" は "eslint/no-console" と同じです。

カテゴリー

カテゴリーでは、目的別にルールをグループ化します。推奨される初期設定は次のとおりです。

  • correctness: "error" — 常に有効です。実際のバグを検出します。
  • suspicious: "warn" — 有用な検出が多い一方、ときどきノイズが発生します。
  • それ以外は、チームの準備に合わせて段階的に有効にします。
使用可能なプラグイン

デフォルトで有効: typescript、unicorn、oxc

オプトイン(CLI フラグまたは設定):

プラグインCLI フラグ目的
react--react-pluginReact 固有のルール
jsx-a11y--jsx-a11y-pluginJSX のアクセシビリティルール
nextjs--nextjs-pluginNext.js のベストプラクティス
import--import-pluginインポート/エクスポートの検証
jest--jest-pluginJest のテストルール
vitest--vitest-pluginVitest のテストルール
jsdoc--jsdoc-pluginJSDoc のドキュメントルール
node--node-pluginNode.js 固有のルール
promise--promise-pluginPromise のベストプラクティス
react-perf--react-perf-pluginReact のパフォーマンスルール
vue--vue-pluginVue.js のルール

デフォルトのプラグインを無効にするには、--disable-typescript-plugin、--disable-unicorn-plugin、--disable-oxc-plugin を使用します。

共有設定の拡張
{
  "extends": ["./configs/base.json", "./configs/frontend.json"]
}

後に記述された項目が、先に記述された項目を上書きします。パスは、その設定を宣言しているファイルを基準に解決されます。

モノレポのサポート

Oxlint はネストされた設定をサポートしています。各ディレクトリに .oxlintrc.json を配置し、親の設定を上書きできます。不要な場合は --disable-nested-config で無効にします。

CLI クイックリファレンス

フラグ説明
-c, --config=PATH特定の設定ファイルを使用します
--tsconfig=PATHパスエイリアス用の TypeScript 設定
--fix安全な問題を自動修正します
--fix-suggestions提案された修正も適用します
-A, --allow=RULEルールを抑制します(例:-A no-console)
-W, --warn=RULEルールを警告として扱います
-D, --deny=RULEルールをエラーとして扱います
--quiet警告を抑制し、エラーのみ表示します
--deny-warnings警告をエラーとして扱います(終了コードはゼロ以外)
--max-warnings=N警告が N 個を超えると失敗します
-f, --format=FMT出力形式:default、json、github、unix など
--ignore-pattern=PATパターンに一致するファイルを除外します
--type-aware型情報を使用するルールを有効にします(tsconfig が必要)
--print-config解決済みの設定を表示します(デバッグに便利です)
--rules利用可能なすべてのルールを一覧表示します

カテゴリも -A/-W/-D で使用できます:

npx oxlint -D correctness -W suspicious -A pedantic

ルールをインラインで抑制する

// oxlint-ignore no-console -- needed for debug logging
console.log(debugInfo);

// oxlint-ignore-next-line no-unused-vars
const _placeholder = computeValue();

eslint-disable ではなく oxlint-ignore を使用してください。oxlint はどちらも認識しますが、ネイティブ構文を推奨します。

ESLint からの移行

プロジェクトを ESLint から oxlint に移行する場合:

  1. 併用する方法 — 両方のリンターを実行し、eslint-plugin-oxlint を使って oxlint がすでに対応しているルールを無効にします:

    npm install -D eslint-plugin-oxlint
    

    ESLint 設定の最後のプラグインとして追加します。

  2. 完全に置き換える方法 — @oxlint/migrate を使って ESLint 設定を変換します:

    npx @oxlint/migrate
    

    既存の ESLint 設定から .oxlintrc.json が生成されます。

対応ファイル形式

.js、.mjs、.cjs、.ts、.mts、.cts、.jsx、.tsx、.vue、.svelte、.astro

.vue、.svelte、.astro ファイルでは、oxlint は <script> ブロックのみを lint します。

コメント