Linter
Biomeのリンタはあなたのコードを静的に分析し、典型的なエラーを検出して、より自然なコードを書く手助けをします。 複数の言語をサポートし、全部で316 個のルールを提供しています。
以下のコマンドはプロジェクトのルートからすべてのファイルに対してリンタを実行します:
npx @biomejs/biome lint
yarn exec biome lint
pnpm exec biome lint
bunx --bun biome lint
deno run -A npm:@biomejs/biome lint
または、フォルダを指定できます。例えば ./src
を指定します:
npx @biomejs/biome lint ./src
yarn exec biome lint ./src
pnpm exec biome lint ./src
bunx --bun biome lint ./src
deno run -A npm:@biomejs/biome lint ./src
コマンドはファイルとディレクトリのリストを受け入れます。
利用可能なすべてのオプションについて、詳しくはCLIリファレンスを参照してください。
リンタはルールに整理されています。
ルールはその要求に満たないコードを検知すると診断結果を出力します。
例えば、noDebugger ルールはJavaScriptコードでの debugger
命令の利用を報告します。
ルールは診断結果を info
、warn
、error
の重大度で出力します。
error
重大度の診断結果はコマンドを非ゼロのステータスコードで終了させます。
info
または warn
重大度の診断結果はコマンドを失敗させません。
--error-on-warnings
オプションを使うことで、 warn
の診断結果にコマンドを失敗させることができます:
biome lint --error-on-warnings ./src
デフォルトでは、Biomeのリンタは推奨されたルールのみを実行します。
_すべてのルール_を無効化するには、Biomeの設定ファイルで推奨されたルールを無効化します。
これはいくつかのルールのみを有効化したいときに有用です。
推奨されたルールは error
重大度で診断結果を出力します。
ルールはグループに分割されています。
例えば、noDebugger
ルールは suspicious
グループ の一部です。
このグループのルールは、間違っている可能性があるか不要であるコードを検出します。
各グループの説明はルールページで確認できます。
他のリンタとは違い、コードのフォーマットをチェックするルールを提供していません。 こうしたチェックはコードフォーマッタが行います。
多くのルールは自動的に適用できるコード修正を提供しています。 Biomeでは、安全な修正と安全ではない修正を区別しています。
安全な修正(Safe fixes)
Section titled “安全な修正(Safe fixes)”安全な修正は、コードのセマンティクスを変更しないことが保証されています。明示的なレビューなしに適用できます。
安全な修正 を適用するには、--write
を使用します:
npx @biomejs/biome lint --write ./src
yarn exec biome lint --write ./src
pnpm exec biome lint --write ./src
bunx --bun biome lint --write ./src
deno run -A npm:@biomejs/biome lint --write ./src
安全ではない修正(Unsafe fixes)
Section titled “安全ではない修正(Unsafe fixes)”安全ではない修正は、プログラムのセマンティクスを変更する可能性があります。そのため、変更を手動でレビューすることをおすすめします。
安全ではない修正 を適用するには、--write --unsafe
を使用します:
npx @biomejs/biome lint --write --unsafe ./src
yarn exec biome lint --write --unsafe ./src
pnpm exec biome lint --write --unsafe ./src
bunx --bun biome lint --write --unsafe ./src
deno run -A npm:@biomejs/biome lint --write --unsafe ./src
ルールの基本原則
Section titled “ルールの基本原則”私たちは、ただルールを指示的に指摘するのではなく、なぜそのルールがトリガーされた理由をユーザーに説明し、エラーを修正する方法をユーザーに伝えることが大切だと考えています。 ルールは以下のような重要な要素に沿って選定されています:
- ユーザーに対してエラーの説明を行います。これは基本的に診断のメッセージです。
- 次に、ユーザーに対してエラーがトリガーされた理由を説明します。これは基本的に追加のノードで実装されます。
- 最後にユーザーに何をすべきかを伝えます。これは基本的にコードアクションを使用して実装されます。 コードアクションが適用できない場合は、ノートでユーザーに何をすべきかを伝えます。
もしルールがこれらの要素に従っていないと感じたのであれば、イシューを作成してください。
ルールまたはグループをスキップする
Section titled “ルールまたはグループをスキップする”バージョン v1.8.0 から、biome lint
コマンドはルールまたはルールの属するグループを無効化する --skip
オプションを受け入れるようになりました。
例えば、以下のコマンドは style
グループに属するすべてのルールと suspicious/noExplicitAny
ルールをスキップします:
biome lint --skip=style --skip=suspicious/noExplicitAny
ルールまたはスキップを実行する
Section titled “ルールまたはスキップを実行する”バージョン v1.8.0 から、biome lint
コマンドは特定のルールまたはルールの属するグループのみを実行する --only
オプションを受け入れるようになりました。
例えば、以下のコマンドは style/useNamingConvension
ルール、style/noInferrableTypes
ルール、そして a11y
グループに属するすべてのルールのみを実行します。
ルールが設定によって無効化されている場合、推奨されるルールの重大度は error
に設定され、それ以外のルールの重大度は warn
に設定されます。
biome lint --only=style/useNamingConvention --only=style/noInferrableTypes --only=a11y
ルールはニーズに応じて設定できます。
リントルールの無効化
Section titled “リントルールの無効化”重大度 error
、warn
、info
のいずれかを指定するとルールは有効化され、off
を指定すると無効化されます。
以下の設定では、推奨された noDebugger
ルールを無効化し、noShoutyConstants
と useNamingConvention
ルールを有効化します。
重大度 warn
はリファクタリングの最中にCIをパスさせる必要がある場合に便利です。
診断結果のメッセージは黄色です。
--error-on-warnings
を使うことで、 warn
が指定されたルールが検知された場合にエラーコードで終了させられます。
重大度 info
は --error-on-warnings
が渡されたとしても、CLIの終了ステータスコードに影響しません。
診断結果のメッセージは青色です。
{ "linter": { "rules": { "suspicious": { "noDebugger": "off", "noConsoleLog": "info" }, "style": { "noShoutyConstants": "warn", "useNamingConvention": "error" } } }}
ルール修正の設定
Section titled “ルール修正の設定”バージョン v1.8.0 から、 fix
オプションによって修正方法を設定できるようになりました。
次の3つのオプションがあります:
{ "linter": { "rules": { "correctness": { "noUnusedVariables": { "level": "error", "fix": "none" } }, "style": { "useConst": { "level": "warn", "fix": "unsafe" }, "useTemplate": { "level": "warn", "fix": "safe" } } } }}
ルールの設定
Section titled “ルールの設定”いくつかのルールには、より詳細な設定があります。
ルールに詳細な設定がある場合、ルールの値を変更することで指定できます。
level
は診断の重大度を示しますoptions
はルールによって異なります
{ "linter": { "enabled": true, "rules": { "correctness": { "noCommentText": { "level": "warn", "options": {} } } } }}
コードの無視
Section titled “コードの無視”特定のコード行に対するリントを無視したい場合があります。 これは、リンタが指摘している行の上に抑制コメントを追加することで実現できます。
抑制コメントは、以下の形式で記述します:
// biome-ignore lint: <explanation>// biome-ignore lint/suspicious/noDebugger: <explanation>
ここで
biome-ignore
:抑制コメントの開始を表します;lint
:はリンタを抑制することを表します;/suspicious/noDebugger
:任意 抑制したいルールのグループと名前を表します;<explanation>
:ルールが無効になっている理由を表します;
例:
// biome-ignore lint: reasondebugger;// biome-ignore lint/suspicious/noDebugger: reasondebugger;
Biomeはファイル全体を無視するためのコメントを提供していません。 しかし、Biomeの設定ファイルでファイルを無視できます。 VCSで無視されるファイルを無視することもできます。
他のリンタからの移行
Section titled “他のリンタからの移行”Biomeの多くのリントルールは他のリンタを参考にしています。
ESLintや typescript-eslint
などの他のリンタから移行する場合は、ルールのソース ページを確認してください。
ESLintから移行する場合は、専用の移行ガイドがあります。