Vercelのビルド時間が長すぎる?カスタムビルドタイムアウトで解決!【初心者向け】
1. Vercelのビルドタイムアウトとは?
Vercelは、Webサイトやアプリケーションを簡単にデプロイできる便利なプラットフォームですが、ビルド時間には制限があります。この制限を超えてしまうと、ビルドが途中で中断され、デプロイに失敗してしまいます。
1.1 ビルドタイムアウトの基本
Vercelのビルドタイムアウト(Build Timeout)とは、Vercelがプロジェクトのビルド処理に費やすことができる最大時間のことです。デフォルトでは、15分に設定されています。
この制限は、リソースの浪費を防ぎ、プラットフォーム全体の安定性を維持するために設けられています。
1.2 なぜビルドタイムアウトが発生するのか?
ビルドタイムアウトが発生する主な原因は以下の通りです。
- 大規模なプロジェクト: コード量が多い、アセット(画像、動画など)が多い
- 複雑なビルド処理: 複雑な依存関係、時間のかかる処理(画像最適化、コード変換など)
- 外部APIへの依存: 外部APIの応答遅延
1.3 ビルドタイムアウトが発生した場合の対処法
ビルドタイムアウトが発生した場合、まずは以下の点を確認してみましょう。
- ビルド処理の最適化: 不要な処理を削除したり、処理時間を短縮したりする
- コードの分割: コードを分割して、ビルド時間を短縮する
- Vercelのプラン変更: より長いビルド時間制限が設定されたプランに変更する
それでも解決しない場合は、カスタムビルドタイムアウトの設定を検討しましょう。
2. カスタムビルドタイムアウトの設定方法
カスタムビルドタイムアウトを設定することで、デフォルトの15分よりも長いビルド時間を設定できます。
2.1 Vercelのプランを確認
カスタムビルドタイムアウトは、Vercelの有料プランでのみ利用可能です。無料プランでは設定できませんので、まずはプランを確認しましょう。
- Proプラン: 最大30分
- Enterpriseプラン: 最大60分
2.2 vercel.json
ファイルの設定
カスタムビルドタイムアウトを設定するには、プロジェクトのルートディレクトリにvercel.json
ファイルを作成し、build
セクションにmaxDuration
プロパティを追加します。
{
"builds": [
{
"src": "package.json",
"use": "@vercel/next",
"config": {
"maxDuration": 300 // ビルド時間を300秒(5分)に設定
}
}
]
}
注意点: maxDuration
に設定できる最大時間は、プランによって異なります。Proプランの場合は最大1800秒(30分)、Enterpriseプランの場合は最大3600秒(60分)です。
2.3 環境変数の設定
環境変数を使ってカスタムビルドタイムアウトを設定することもできます。
Vercelのダッシュボードから、プロジェクトのSettings > Environment VariablesにVERCEL_BUILD_MAX_DURATION
という名前の環境変数を追加し、値を秒単位で設定します。
環境変数の設定は、vercel.json
ファイルの設定よりも優先されます。
3. ビルド時間の最適化
カスタムビルドタイムアウトを設定するだけでなく、ビルド時間そのものを最適化することも重要です。
3.1 不要な依存関係の削除
プロジェクトで使用していない依存関係(dependencies)を削除することで、ビルド時間を短縮できます。
package.json
ファイルを確認し、不要な依存関係を削除しましょう。
3.2 コードの分割
大規模なコードベースは、ビルド時間を長くする原因となります。コードを小さなモジュールに分割し、必要な時にだけロードするようにすることで、ビルド時間を短縮できます。
3.3 画像の最適化
画像は、Webサイトのパフォーマンスに大きな影響を与えます。画像を最適化することで、ビルド時間を短縮できるだけでなく、Webサイトの表示速度も向上します。
- 画像の圧縮: 画像のファイルサイズを小さくする
- 適切なフォーマットの選択: JPEG、PNG、WebPなど、用途に合ったフォーマットを選択する
- レスポンシブ画像の利用: デバイスの画面サイズに合わせて、適切なサイズの画像を表示する
3.4 キャッシュの活用
Vercelは、ビルド結果をキャッシュ(Cache)します。キャッシュを活用することで、同じ内容のビルドを何度も行う必要がなくなり、ビルド時間を短縮できます。
4. まとめ
この記事では、Vercelのカスタムビルドタイムアウトについて解説しました。
- Vercelのビルドタイムアウトは、デフォルトで15分に設定されている
- カスタムビルドタイムアウトは、有料プランでのみ利用可能
vercel.json
ファイルまたは環境変数で設定できる- ビルド時間の最適化も重要
カスタムビルドタイムアウトを設定することで、ビルド時間制限によるエラーを解消し、大規模プロジェクトでもVercelを快適に利用できます。
次のステップ:
- Vercelのプランを確認する
vercel.json
ファイルを作成し、maxDuration
プロパティを設定する- ビルド時間の最適化に取り組む
関連リソース: