ビルド&デプロイエラー
TypeScript CIの失敗、ビルドエラー、デプロイの失敗の修正方法。
ビルドエラーとは?
ビルドエラーは、pnpm devでは問題なく動くアプリが、pnpm buildを実行するときやPRでCIが実行されるときに失敗する場合に発生します。これはVibe coderにとって最もよくある問題です。
なぜ?pnpm devは寛容で、高速なフィードバックのために多くのチェックをスキップするからです。しかしpnpm buildはTypeScriptをストリクトモードで実行し、明示的な型注釈が必要です。
最もよくあるエラー:暗黙の'any'型
圧倒的に最も頻度の高いビルドエラーです。以下のように表示されます:
ビルドエラーの例text
./app/dashboard/page.tsx:24:30
Type error: Parameter 'item' implicitly has an 'any' type.
22 | const data = await fetchData();
23 |
> 24 | const names = data.map((item) => item.name);
| ^^^^
25 |修正はシンプルです — 型注釈を追加します:
暗黙の'any'型の修正方法typescript
// BAD - CIで失敗する
const names = data.map((item) => item.name);
// GOOD - 明示的な型注釈
const names = data.map((item: typeof data[0]) => item.name);ClaudeにTypeScriptエラーを修正してもらう
Claudeプロンプトmy-app-name: ビルドが以下のエラーで失敗しています:
Parameter 'item' implicitly has an 'any' type.
at app/dashboard/page.tsx:24:30
このファイルのすべての暗黙の'any'型エラーを修正してください。すべてのコールバックパラメータに明示的な型注釈を使用してください。
ビルド出力の読み方
ビルド出力は何が間違っているか正確に教えてくれます:
ビルド出力の読み方text
./app/dashboard/page.tsx:24:30 <-- ファイルと行番号
Type error: Parameter 'item' <-- 何が間違っているか
implicitly has an 'any' type. <-- なぜ間違っているか
> 24 | data.map((item) => ... <-- 該当の行重要な情報:
- ファイルパス — どのファイルにエラーがあるか
- 行番号 — どの行を見るべきか
- エラーメッセージ — 何を変更する必要があるか
コミット前に必ずビルドを実行
Vibe coderにとって最も重要な習慣です:
コミット前にビルドを実行bash
# モノレポのルートから
pnpm build:your-app-name
# パスすれば、コミットもCIをパスします
# 失敗したら、コミット前にエラーを修正してくださいClaudeにビルドとエラー修正を依頼
Claudeプロンプトmy-app-name: ビルドコマンドを実行して、発生するエラーを修正してください。コミット前にパスすることを確認したいです。
PRでのCIチェックの失敗
PRを作成すると、CIが自動的にビルドを実行します。失敗した場合:
- PRはマージできません
- チェックの横に赤い「X」が表示されます
- 「Details」をクリックしてエラー出力を確認
CIの失敗を修正
Claudeプロンプトmy-app-name: PRのCIチェックが失敗しています。エラー出力は以下の通りです:
[失敗したCIの出力を貼り付け]
これらのエラーを修正してください。
Railwayでのデプロイ失敗
ローカルでビルドは成功するが、Railwayでデプロイが失敗する場合があります。よくある原因:
- 環境変数の欠落 — Railwayダッシュボードで設定する
- 異なるNode.jsバージョン — Railwayが異なるバージョンを使用している可能性
- 依存関係の欠落 — パッケージが
package.jsonにない
デプロイの失敗をデバッグ
Claudeプロンプトmy-app-name: ローカルではビルド成功しますが、Railwayデプロイが失敗します。
Railwayビルドログ:
[Railwayビルドエラーを貼り付け]
デプロイの修正を手伝ってください。
クイズ
Quiz
アプリは'pnpm dev'では完璧に動作しますが、'pnpm build'で失敗します。なぜですか?