Node.js Cloud Native Buildpack のビルド
最終更新日 2025年03月17日(月)
Heroku の Node.js buildpack は、アプリがクラシック buildpack を使用するか、Cloud Native Buildpack (CNB) を使用するかによってビルド動作が異なります。
この記事では、Heroku の Node.js Cloud Native Buildpack を使用したアプリのビルド動作と、ビルドプロセスをカスタマイズする方法について説明します。Node.js アプリケーションは、npm、pnpm、または Yarn のパッケージマネージャーを使用する場合、同じビルドプロセスをたどります。
この記事は、Cloud Native Buildpack を使用するアプリにのみ適用されます。クラシック Node.js アプリについては、Node.js クラシック Buildpack の動作を参照してください。
パッケージのインストール
デフォルトでは、Heroku は package.json
の dependencies
および devDependencies
に定義されているすべての依存関係をインストールします。
Heroku では、ロックファイル (package-lock.json
、pnpm-lock.yaml
または yarn.lock
) を使用して、期待される依存関係ツリーをインストールします。これらのファイルを Git にチェックインして、環境全体の依存関係バージョンを同じにしてください。npm
を使用する場合、Heroku では npm ci
を使用してビルド環境を設定します。
ビルドの失敗
ビルドに失敗した場合、Node.js buildpack は Node アプリケーション内の一般的な問題を特定し、警告と共にベストプラクティスとなる推奨事項を提供します。
環境変数
ビルド中もアプリの環境設定は使用可能なため、環境変数の値に基づいてビルド動作を調整できます。たとえば、次のようになります。
$ heroku config:set MY_CUSTOM_VALUE=foobar
Cloud Native Buildpack アプリのビルドプロセスをカスタマイズする
CNB アプリケーションのビルドプロセスをカスタマイズできるようにするため、以下のスクリプトが package.json
に定義されている場合は、指定された順序で、選択されたパッケージマネージャーによって実行されます。
heroku-prebuild
heroku-build
またはbuild
heroku-postbuild
heroku-build
および build
が存在する場合は、heroku-build
のみが実行されます。
これらのスクリプトは、すべての依存関係をインストールした後に実行されます。