Vercel デプロイエラーの解決方法(Next.js 15対応)

に公開

はじめに

Next.js 15のプロジェクトをVercelにデプロイする際に、以下のようなエラーに遭遇しました。

Error: Command "npm run build" exited with 1

ローカル環境では npm run build が正常に動作するにもかかわらず、Vercelでのデプロイが失敗するという状況でした。本記事では、このエラーの原因と解決方法について解説します。

エラーの詳細

環境情報

  • Next.js: 15.3.3
  • Node.js: 18.17.0以上
  • Tailwind CSS: v4
  • Vercel CLI: 41.7.8

エラー発生時の状況

$ vercel --prod
Vercel CLI 41.7.8
Retrieving project…
Deploying shins/portfolio
Inspect: https://vercel.com/shins/portfolio/...
Production: https://portfolio-...vercel.app
Queued
Building
Error: Command "npm run build" exited with 1

原因の分析

このエラーメッセージは実際のエラー内容を示していない汎用的なメッセージです。真の原因を特定するには、以下の点を確認する必要があります。

1. package-lock.jsonの不整合

最も一般的な原因は、package-lock.jsonファイルとローカル環境のnode_modulesの間に不整合が生じていることです。

2. 依存関係の問題

  • 本番環境に必要なパッケージがdevDependenciesに記載されている
  • パッケージのバージョン競合
  • Vercel環境でのパッケージインストールエラー

3. 環境変数の未設定

Vercelダッシュボードで必要な環境変数が設定されていない場合もビルドエラーの原因となります。

4. Node.jsバージョンの不一致

ローカル環境とVercel環境のNode.jsバージョンが異なる場合、予期しないエラーが発生することがあります。

解決方法

解決策1: クリーンインストール(推奨)

最も効果的な解決方法は、依存関係をクリーンインストールすることです。

# 1. キャッシュとロックファイルを削除
rm -rf node_modules .vercel package-lock.json

# 2. 依存関係を再インストール
npm install

# 3. Vercelに再デプロイ
vercel --prod --yes

解決策2: Node.jsバージョンの指定

package.jsonにNode.jsのバージョンを明示的に指定します。

{
  "engines": {
    "node": ">=18.17.0"
  }
}

解決策3: ビルドエラーの一時的な無視(非推奨)

開発中の一時的な対処として、next.config.tsでエラーを無視する設定を追加できます。

const nextConfig: NextConfig = {
  typescript: {
    ignoreBuildErrors: true,
  },
  eslint: {
    ignoreDuringBuilds: true,
  },
};

注意: この方法は本番環境では推奨されません。あくまで一時的な対処法として使用してください。

解決策4: 環境変数の確認

Vercel CLIで環境変数を確認します。

# 環境変数の一覧を確認
vercel env ls production

# 環境変数を追加
vercel env add

解決策5: ビルドコマンドのカスタマイズ

Vercelダッシュボードで、Build & Development Settingsから以下を設定できます。

  • Install Command: npm install --force
  • Build Command: npm run build

デバッグのヒント

詳細なエラーログの確認

# Vercelのログを確認
vercel logs <deployment-url>

# または、Vercelダッシュボードでログを確認
# https://vercel.com/[username]/[project]/[deployment-id]

ローカルでの本番ビルドテスト

# 本番環境と同じ条件でビルド
NODE_ENV=production npm run build

まとめ

Vercelのデプロイエラー「Command "npm run build" exited with 1」は、多くの場合、依存関係の不整合が原因です。以下の手順で解決できることが多いです:

  1. クリーンインストールを最初に試す
  2. Node.jsバージョンを明示的に指定
  3. 環境変数が正しく設定されているか確認
  4. 必要に応じてビルドログを詳細に確認

これらの方法を順に試すことで、ほとんどのデプロイエラーを解決できるはずです。

参考リンク

GitHubで編集を提案

Discussion