ESLintとPrettierからの移行
Biomeには容易にESLintとPrettierから移行するためのコマンドがあります。
詳細について知りたくない場合は、ただ以下のコマンドを実行してください。
biome migrate eslint --writebiome migrate prettier --writeESLintからの移行
Section titled “ESLintからの移行”多くのBiomeリンタのルールはESLintやESLintのプラグインのルールからインスパイアされて作られています。BiomeにはTypeScript ESLint、ESLint JSX A11y、ESLint React、ESLint UnicornなどのESLintプラグインのルールがあります。
しかし、Biomeのルールの名前には独自の慣習があり、例えばBiomeはcamelCaseRuleNameを使う一方で、ESLintはkebab-case-rule-nameを使います。
Biomeは、異なるルール名を採用しているケースが多くあります。
あるルールの出所は、そのルールを説明するページで見つけることができます。
もしくは、あるESLintのルールに対応するBiomeのルールはRules sourcesで見つけることができます。
移行を容易にするために、Biomeはbiome migrate eslintサブコマンドを提供します。
このサブコマンドはESLintの設定を読み込んで、Biomeの設定に移行することを試みます。
このサブコマンドは古い設定ファイルも新しいflat configもサポートしています。
古い設定ファイルのextendsフィールドもサポートしていて、プラグインの設定と共有設定の両方を読み込みます。
また、このサブコマンドは.eslintignoreも移行します。
次のESLintの設定:
{  "extends": ["plugin:unicorn/recommended"],  "plugins": ["unicorn"],  "ignore_patterns": ["dist/**"],  "globals": {    "Global1": "readonly"  },  "rules": {    "eqeqeq": "error"  },  "overrides": [    {      "files": ["tests/**"],      "rules": {        "eqeqeq": "off"      }    }  ]}と次のBiomeの設定があるとします:
{  "linter": {    "enabled": true,    "rules": {      "recommended": true    }  }}ESLintの設定をBiomeに移行するために以下のコードを実行できます。
npx @biomejs/biome migrate eslint --writepnpm exec biome migrate eslint --writebunx --bun biome migrate eslint --writedeno run -A npm:@biomejs/biome migrate eslint --writeyarn exec biome migrate eslint --writeこのコマンドはBiomeの初期設定ファイルを上書きします。
例えば、recommendedは無効にされます。
結果は以下のようになります。
{  "organizeImports": { "enabled": true },  "linter": {    "enabled": true,    "rules": {      "recommended": false,      "complexity": {        "noForEach": "error",        "noStaticOnlyClass": "error",        "noUselessSwitchCase": "error",        "useFlatMap": "error"      },      "style": {        "noNegationElse": "off",        "useForOf": "error",        "useNodejsImportProtocol": "error",        "useNumberNamespace": "error"      },      "suspicious": {        "noDoubleEquals": "error",        "noThenProperty": "error",        "useIsArray": "error"      }    }  },  "javascript": { "globals": ["Global1"] },  "overrides": [    {      "include": ["tests/**"],      "linter": { "rules": { "suspicious": { "noDoubleEquals": "off" } } }    }  ]}このサブコマンドはESLintの全てのプラグインとextendsフィールドを読み込むためにNode.jsを必要とします。
現在は、biome migrate eslintはYAMLで書かれた設定ファイルをサポートしていません。
デフォルトでは、Biomeはインスパイアされたルールを移行しません。
--include-inspiredを使うことでインスパイアされたルールを移行することができます。
npx @biomejs/biome migrate eslint --write --include-inspiredpnpm exec biome migrate eslint --write --include-inspiredbunx --bun biome migrate eslint --write --include-inspireddeno run -A npm:@biomejs/biome migrate eslint --write --include-inspiredyarn exec biome migrate eslint --write --include-inspiredBiomeがいくつかのルールオプションを実装しないか、元の実装からわずかに逸脱することを選択したため、ESLintとまったく同じ動作を得る可能性は低いことに注意してください。
ESLintはVCS ignoreファイルを使用しているので、BiomeのVCS インテグレーションを有効にすることを推奨します。
Prettierからの移行
Section titled “Prettierからの移行”BiomeはPrettierフォーマッタとできるだけ近い動作をするようにしています。
しかし、Biomeは異なるデフォルトを使用します。
例えば、Biomeはスペースの代わりにタブを使用します。
biome migrate prettier --writeを実行することで容易にBiomeに移行することができます。
次のPrettierの設定:
{  "useTabs": false,  "singleQuote": true,  "overrides": [    {          "files": ["*.json"],          "options": { "tabWidth": 2 }      }  ]}がある場合、以下のコマンドを実行することでPrettierの設定をBiomeに移行することができます。
npx @biomejs/biome migrate prettier --writepnpm exec biome migrate prettier --writebunx --bun biome migrate prettier --writedeno run -A npm:@biomejs/biome migrate prettier --writeyarn exec biome migrate prettier --write結果は以下のようになります。
{  "formatter": {    "enabled": true,    "formatWithErrors": false,    "indentStyle": "space",    "indentWidth": 2,    "lineEnding": "lf",    "lineWidth": 80,    "attributePosition": "auto"  },  "organizeImports": { "enabled": true },  "linter": { "enabled": true, "rules": { "recommended": true } },  "javascript": {    "formatter": {      "jsxQuoteStyle": "double",      "quoteProperties": "asNeeded",      "trailingCommas": "all",      "semicolons": "asNeeded",      "arrowParentheses": "always",      "bracketSpacing": true,      "bracketSameLine": false,      "quoteStyle": "single",      "attributePosition": "auto"    }  },  "overrides": [    {      "include": ["*.json"],      "formatter": {        "indentWidth": 2      }    }  ]}このサブコマンドは.prettierrc.jsなどの設定を読み込むためにNode.jsを必要とします。
biome migrate prettierはJSON5、TOML、YAMLで書かれた設定ファイルをサポートしていません。
PrettierはVCSファイルをサポートしているので、BiomeのVCS インテグレーションを有効にすることを推奨します。
Copyright (c) 2023-present Biome Developers and Contributors.