コンテンツにスキップ
Blume
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

Doctor

blume doctor は、ビルドの前に設定とコンテンツの問題を診断します。対象は設定、すべてのページ、Node のバージョン、サーバーを必要とする機能です。

blume doctor は、blume build とまったく同じ方法でプロジェクトをスキャンし、何も生成・ビルドせずに見つかった問題を報告します。はっきりしない理由でビルドが失敗したときに最初に実行すべきコマンドです。また、CI に組み込む低コストなチェックとしても役立ちます。

blume doctor

blume init は、このコマンドを doctor スクリプトとして package.json にも追加します。pnpm を使う場合は、pnpm run doctor(モノレポのルートからは pnpm --filter <workspace> run doctor)として実行してください。単に pnpm doctor と実行すると、スクリプトではなく pnpm に組み込まれた doctor コマンドが実行されます。

チェック内容

  • Node のバージョン: インストールされている blume パッケージがサポートする範囲と照合します。範囲はパッケージ自身の engines フィールドから読み取ります。範囲外のバージョンは警告になります。動作する可能性はありますが、Blume がテストしている組み合わせではありません。
  • blume.config.ts: ビルド時と同じ検証を行います。削除されたキーや名前が変わったキーは、単なる「unrecognized key」ではなく、置き換え先を示すヒント付きのエラーになります。
  • すべてのコンテンツページとフォルダーのメタ: blume dev と blume build がプロジェクトの読み込み時に出力する診断を、1 つのレポートにまとめます。無効なフロントマター、解析できない .mdx、ナビゲーションの問題、見つからないインクルード先などが含まれます。
  • どこにもつながらないナビゲーション: タブ、セレクターの項目、注目リンク、ヘッダーアクション、コールトゥアクションのうち、パスがどのページ、カスタムの .astro ページ、生成されたルート、リファレンス、public/ 内のファイル、Blume が生成するファイルにも一致しないものが対象です。blume dev や blume build が出力するのと同じ警告(BLUME_NAV_MISSING_PAGE)になります。タブについては、実際のリンク先がチェックされます。href があれば href、なければ path です。
  • 存在しない <Component> の例: examples 配下のどのファイルも指していない path が対象です。このようなページには「No example found」というボックスが表示されます。blume dev や blume build と同様に、該当する行で警告(BLUME_EXAMPLE_NOT_FOUND)になります。Component という名前の components.ts のオーバーライドやアイランドは組み込みのコンポーネントを置き換えるため、チェックの対象外です。
  • サーバーを必要とする機能: 静的出力用に設定されたサイトで、アシスタント、MCP サーバー、Try it プレイグラウンドの組み込みプロキシ、サーバーモードの検索(Mixedbread)を使っている場合が対象です。機能名と切り替え先のデプロイアダプターを示すエラーになります。ホストアダプターに output: "static" が設定されている場合は、そのオプションを削除するよう案内します。
  • 設定に必要なのにインストールされていないパッケージ: 検索、コンテンツソース、アシスタント、ナレーションの各アダプターがインポートする SDK、デプロイアダプターの @astrojs/* パッケージ、Vue や Svelte のアイランド用レンダラーが対象です。各パッケージ名と、お使いのパッケージマネージャー用のインストールコマンドを示すエラーになります。blume build も同じチェックで停止します。
  • Blume が解析できない components.ts のオーバーライド: インラインのエントリ、計算で求めるエントリ、存在しないファイルをインポートしているエントリが対象です。それぞれ該当する行でエラーになります。
  • バージョン形式のフォルダー(v1.0/): versions が設定されていないサイトでは、このフォルダーは通常のコンテンツとしてビルドされてしまいます。blume version を案内する警告になります。
  • 有効な機能が読み取るのに設定されていないシークレット: MIXEDBREAD_API_KEY や OPENROUTER_API_KEY などが対象です。変数名を示す警告になります。doctor は blume dev や blume build と同様に、最初に .env と .env.local を読み込みます。また、リモートのコンテンツソースが取得を始める前にチェックするため、その後トークンがないことでソースが失敗した場合でも警告は出力されます。

サマリー

doctor は診断結果の後に、プロジェクトが最終的にどう解決されたかを出力します。設定したつもりの内容と Blume が認識している内容が食い違っていれば、ひと目でわかります。出力される項目は次のとおりです。ページ数、出力モードとデプロイアダプター、検索プロバイダー、設定済みのリファレンス・アナリティクス・コンテンツソースの各アダプター、アシスタントが有効かどうかと使用しているバックエンドです。

終了コードと JSON

doctor はエラーの診断があると 0 以外の終了コードで終了します。そのため、ビルドが失敗するのと同じ問題で CI も失敗します。警告は報告されますが、失敗にはなりません。--json を指定すると、ターミナル向けのレポートの代わりに、診断を JSON として標準出力に出力します。形式は blume validate --json と同じです。

最終更新

このページは役に立ちましたか?