Skip to content

Oxlint v0.10 マイグレーションガイド

このマイグレーションガイドは、古いバージョンの Oxlint 用です。 最新の安定版 v1.0 の情報については、Oxlint v1.0 安定版発表 を参照してください。

Oxlint v0.10.0 が登場しました! このリリースでは、複数の魅力的な機能を追加しており、特に設定ファイルに対する多数の改善が含まれています。

新機能

新しいルール

このリリースでは、以下の新しいルールが追加されました:

  • promise/no-callback-in-promise
  • react/iframe-missing-sandbox
  • node/no-new-require

さらに、次に対する自動修正/提案が追加されました:

  • eslint/no-plusplus

カテゴリ別でルールの有効・無効を指定可能

設定ファイル内の categories フィールドを使用することで、ルールのカテゴリ全体を有効または無効にできるようになりました。

従来、以下のようにコマンドラインを実行していました:

sh
oxlint -D correctness -W suspicious -c oxlint.json

現在は、oxlint.jsoncategories フィールドを追加するだけで済みます。

jsonc
{
  "categories": {
    "correctness": "deny", 
    "suspicious": "warn", 
  }, 
  "rules": {
    "no-const-assign": "error",
    "import/no-cycle": "error",
  },
}

そして、-D および -W フラグを削除できます。

設定ファイルで plugins がサポートされるようになりました

設定ファイルでは、ESLint v8 の構成から導入された plugins 配列が今やサポートされています。これにより、コマンドライン引数を使わずにプラグインを有効化できるようになり、VSCode でもプラグインを利用することが可能になります。

jsonc
{
  "plugins": ["import"], 
  "categories": {
    "correctness": "deny",
    "suspicious": "warn",
  },
  "rules": {
    "react/jsx-uses-react": "off",
    "react/react-in-jsx-scope": "off",
  },
}

これは categories とスムーズに連携します。有効/無効なカテゴリは、プラグインにも影響を与えます。

jsonc
{
  "plugins": ["import"],
  // `categories` は有効化されたすべてのプラグインに影響します
  "categories": {
    "correctness": "allow",
    "suspicious": "warn",
  },
  "rules": {
    "no-const-assign": "error",
    "import/no-cycle": "error",
  },
}

破壊的変更とマイグレーションガイド

CLI と設定ファイルのルール優先順位

以前は、設定ファイルがコマンドライン引数で設定されたルールを上書きしていました。たとえば、以下のコマンドを実行した場合:

sh
oxlint -A correctness -c oxlintrc.json

この設定ファイルと併用した場合

jsonc
{
  "rules": {
    "no-const-assign": "error",
  },
}

結果として、no-const-assign という1つのルールのみがエラーレベルで有効になり、他のすべてのルールは無効(つまり「allow」に設定)になります。

現在は、コマンドライン引数が設定ファイルを上書きするようになりました。同じコマンドと同一の設定ファイルを使うと、すべてのルールが無効になることになります。以前と同じ動作を得るには、コマンドライン引数ではなく、設定ファイル内でカテゴリの有効・無効を指定してください。

sh
oxlint -c oxlint.json
jsonc
{
  "categories": {
    "correctness": "allow", 
  }, 
  "rules": {
    "no-const-assign": "error",
  },
}