Biome lint で console.log を残したい時の3つの対処法
はじめに
Biomeを導入してコードレビューやCI/CDで自動lintを回していると、こんな場面に遭遇します。
packages/app/src/utils/logger.ts:12:3 lint/suspicious/noConsole ━━━━━━━━━━━━━━━ ✖ Don't use console.
デバッグ用の console.log はもちろん消すべきですが、ロガーユーティリティやCLIツールの出力など、意図的に console を使いたい箇所まで怒られてしまうことがあります。
この記事では、Biomeで console 系メソッドを残したい時の3つの対処法を紹介します。
前提条件
- Biome がインストール済み(v1.x)
biome.jsonが存在すること
npm install --save-dev --save-exact @biomejs/biome npx biome init
対処法1:その行だけインラインで無効化する
1箇所だけ例外にしたい場合は、対象行の直前にコメントを追加します。
// biome-ignore lint/suspicious/noConsole: CLIの出力として使用 console.log(`ビルド完了: ${outputPath}`);
biome-ignore の後にルール名、コロンの後に理由を書くのがルールです。理由は省略できませんので注意してください。省略するとBiomeがエラーを出します。
複数のルールをまとめて無効化することもできます。
// biome-ignore lint/suspicious/noConsole lint/suspicious/noConsoleLog: デバッグ用途 console.log(data);
対処法2:ファイル単位で無効化する
テストファイルやCLIエントリポイントなど、ファイル全体で console を使いたい場合は biome.json の overrides を使います。
{ "linter": { "rules": { "suspicious": { "noConsole": "error" } } }, "overrides": [ { "include": ["src/cli/**", "src/scripts/**"], "linter": { "rules": { "suspicious": { "noConsole": "off" } } } } ] }
include にはglob形式でパスを指定します。これで src/cli/ 以下のファイルはすべて noConsole ルールが無効になります。
対処法3:プロジェクト全体でルールを warn に下げる
エラーではなく警告にとどめておきたい場合は "error" を "warn" に変更します。CIではエラーのみ失敗させて、警告は見逃す運用にできます。
{ "linter": { "rules": { "suspicious": { "noConsole": "warn" } } } }
Biomeの終了コードはエラーがあると 1 になりますが、警告のみの場合は 0 のままです。CIで biome check を実行している場合、warn にしておけばパイプラインが落ちなくなります。
使い分けのまとめ
| 状況 | 対処法 |
|---|---|
| 1〜2行だけ残したい | インライン biome-ignore コメント |
| 特定のファイル・ディレクトリごと残したい | overrides で対象パスを指定 |
| プロジェクト全体でエラーにしたくない | ルールを warn に変更 |
基本はインラインコメントで最小限の範囲に留めるのがおすすめです。理由を書く強制があるので、後から見たときに意図がわかりやすくなります。
まとめ
biome-ignore lint/suspicious/noConsole: 理由で1行単位の除外ができるoverridesを使えばファイル・ディレクトリ単位で設定を上書きできる"warn"に下げればCIを落とさずに警告として残せる- 意図的な
console使用はインラインコメントで理由を明記するのがベストプラクティス