Doctor
blume doctor は、ビルドの前に設定とコンテンツの問題を診断します。対象は設定、すべてのページ、Node のバージョン、サーバーを必要とする機能です。
blume doctor は、blume build とまったく同じ方法でプロジェクトをスキャンし、何も生成・ビルドせずに見つかった問題を報告します。はっきりしない理由でビルドが失敗したときに最初に実行すべきコマンドです。また、CI に組み込む低コストなチェックとしても役立ちます。
blume doctor
チェック内容
- Node のバージョン: インストールされている
blumeパッケージがサポートする範囲と照合します。範囲はパッケージ自身のenginesフィールドから読み取ります。範囲外のバージョンは警告になります。動作する可能性はありますが、Blume がテストしている組み合わせではありません。 blume.config.ts: ビルド時と同じ検証を行います。削除されたキーや名前が変わったキーは、単なる「unrecognized key」ではなく、置き換え先を示すヒント付きのエラーになります。- すべてのコンテンツページとフォルダーのメタ:
blume devとblume buildがプロジェクトの読み込み時に出力する診断を、1 つのレポートにまとめます。無効なフロントマター、ナビゲーションの問題、見つからないインクルード先などが含まれます。 - サーバーを必要とする機能: 静的出力用に設定されたサイトで、Ask AI、MCP サーバー、Try it プレイグラウンドの組み込みプロキシを使っている場合が対象です。機能名と切り替え先のデプロイアダプターを示すエラーになります。ホストアダプターに
output: "static"が設定されている場合は、そのオプションを削除するよう案内します。 - 設定に必要なのにインストールされていないパッケージ: 検索、コンテンツソース、Ask AI の各アダプターがインポートする SDK、デプロイアダプターの
@astrojs/*パッケージ、Vue や Svelte のアイランド用レンダラーが対象です。各パッケージ名と、お使いのパッケージマネージャー用のインストールコマンドを示すエラーになります。blume buildも同じチェックで停止します。 - Blume が解析できない
components.tsのオーバーライド: インラインのエントリ、計算で求めるエントリ、存在しないファイルをインポートしているエントリが対象です。それぞれ該当する行でエラーになります。 - バージョン形式のフォルダー(
v1.0/):versionsが設定されていないサイトでは、このフォルダーは通常のコンテンツとしてビルドされてしまいます。blume versionを案内する警告になります。 - 有効な機能が読み取るのに設定されていないシークレット:
ALGOLIA_ADMIN_API_KEYやOPENROUTER_API_KEYなどが対象です。変数名を示す警告になります。doctor はblume devやblume buildと同様に、最初に.envと.env.localを読み込みます。
サマリー
doctor は診断結果の後に、プロジェクトが最終的にどう解決されたかを出力します。設定したつもりの内容と Blume が認識している内容が食い違っていれば、ひと目でわかります。出力される項目は次のとおりです。ページ数、出力モードとデプロイアダプター、検索プロバイダー、設定済みのリファレンス・アナリティクス・コンテンツソースの各アダプター、Ask AI が有効かどうかと使用しているバックエンドです。
終了コードと JSON
doctor はエラーの診断があると 0 以外の終了コードで終了します。そのため、ビルドが失敗するのと同じ問題で CI も失敗します。警告は報告されますが、失敗にはなりません。--json を指定すると、ターミナル向けのレポートの代わりに、診断を JSON として標準出力に出力します。形式は blume validate --json と同じです。