よくある質問とトラブルシューティング
EpoCanvas Docs の使用・執筆・デプロイ中に異常に遭遇したら、まずここで当てはまるものを探してください。問題は「ローカル起動 → ドキュメント執筆 → 検索 → デプロイ」の順に並んでいます。各問題には原因と、動作確認済みの解決方法を記載しています。
1. ローカルの起動とインストールの問題
Q1: pnpm run dev を実行するとポート 4321 が使用中と表示される
-
原因: 以前に起動した開発サーバーが完全に終了していないか、別のプログラムがポート 4321 を占有しています。
-
解決方法: 別のポートで起動します:
Terminal window pnpm run dev -- --port 4322
Q2: 依存関係のインストール時に Sharp モジュールのコンパイルエラーが出る
-
原因: Sharp はビルド時に画像を圧縮する基盤の C++ モジュールです。Node.js のバージョンが変わると、古いキャッシュが合わなくなることがあります。
-
解決方法: 依存関係をクリーンアップしてから再インストールします:
Terminal window rm -rf node_modules pnpm-lock.yamlpnpm install
Q3: pnpm install を実行すると packages field missing or empty エラーになる
-
原因:
pnpm-workspace.yamlの内容が空か、形式が不完全です。pnpm はこれをワークスペース設定ファイルとして解析し、エラーを出します。 -
解決方法: ファイルに
packagesフィールドが含まれていることを確認します:packages:- .
2. ドキュメント執筆とレンダリングの問題
Q4: 新しい Markdown を作成したのに、左側のサイドバーに表示されない
-
原因: サイドバーのカタログは手動で宣言する仕組みで、新規ファイルは設定への登録が必要です。
-
解決方法:
astro.config.mjsを開き、sidebar配列の適切なグループに追加します:{ label: '新機能の説明', link: '/canvas/new-feature/' }
Q5: ターミナルに "title" is required エラーが出る
-
原因: Markdown の先頭で
titleを書き忘れたか、先頭の 3 つのハイフン---の形式が不正です。 -
解決方法: ファイル最上部の Frontmatter を確認します:
---title: 記事タイトルdescription: 記事の説明---
Q6: 同じ内容の大きな見出しが 2 つ表示される
- 原因: 本文にもう 1 つレベル 1 の見出し
#を書いています。Frontmatter のtitleはすでに大見出しとしてレンダリングされるため、本文で#を書くと必ず重複します。 - 解決方法: 本文から
#見出しを削除し、節は##から始めます。完全なルールはレンダリングルールの詳細を参照してください。
Q7: > [!TIP] と書いたのに吹き出しが色づかず、文字がそのまま表示される
-
原因: GitHub 風の
> [!TIP]引用ブロック構文はサポートされておらず、Markdown コンパイラが認識しません。 -
解決方法: 3 コロン構文に書き換えます:
:::tipこちらが正しい書き方です。:::
Q8: 挿入した画像が割れたアイコンで表示される
- 原因: 画像のパスが間違っているか、画像が
public/静的ディレクトリに置かれていません。 - 解決方法:
- 画像が
public/images/canvas/ui-docs-reading.pngに保存されていることを確認します。 - 参照するときは
/で始まる絶対パスを使います:。../public/...のような相対パスは書かないでください。
- 画像が
3. 検索機能の問題
Q9: ローカルの pnpm dev でデバッグしているとき、サイト全体検索で新しく書いた記事が見つからない
-
原因: サイト全体検索はビルド時に生成される Pagefind のインデックスに依存しています。開発モードでは
Ctrl+Kダイアログがインデックスを読み込まず(開いても検索入力欄がない)、サイト全体検索は使用できません。これはフレームワークの想定動作であり、サイトの故障ではありません。 -
解決方法: 完全にビルドしてからプレビューサーバーで検証します:
Terminal window pnpm run buildpnpm run previewトップバーのページ内検索はこの制限を受けないため、開発中はそれを使って現在のページの内容を直接探せます。
Q10: Ctrl+K を押しても検索ポップアップが開かない
- 原因: 一部の IME(入力メソッド)、クリップボードツール、スクリーンショットソフトが
Ctrl+K/Cmd+Kのショートカットキーを占有しています。 - 解決方法: 検索ボックスの右側にある
Ctrl Kの小さなバッジをクリックしても、サイト全体検索のポップアップを開けます。
4. Cloudflare Pages のデプロイの問題
Q11: バインドしたばかりのカスタムドメインで SSL ハンドシェイク失敗 (Error 525) と表示される
- 原因: Cloudflare が新しいドメインに Universal SSL 証明書を発行するには、全世界に反映されるまで 2〜5 分かかります。
- 解決方法: 数分待ってから強制リロードします(
Ctrl+F5/Cmd+Shift+R)。それまでは<プロジェクト名>.pages.devのデフォルトドメインでアクセスできます。これは常に利用可能です。
Q12: pnpm run deploy を実行すると Project not found エラーになる
- 原因: デプロイコマンドの
--project-nameパラメータが、Cloudflare コンソールのプロジェクト名と一致していません。または、このマシンでログインしていない可能性もあります。 - 解決方法:
- まず
npx wrangler whoamiを実行してログイン済みか確認します。 - Cloudflare コンソールでプロジェクト名を確認し、必要に応じて
package.jsonのdeployスクリプトの--project-nameパラメータを修正します。
- まず
5. コミット前のローカルセルフチェック
GitHub にプッシュする前に、次のコマンドで完全なセルフチェック(型チェック + 全量ビルド)を行います:
pnpm exec astro check && pnpm run buildastro check が 0 errors を出力し、ビルドが Complete! で終われば、ドキュメントに構文エラーはなく、安心してコミットできます。リポジトリの CI(build.yml)はプッシュ後に同じビルドを実行するため、ローカルで先に通しておけば CI の失敗を避けられます。