デフォルトでは、package.json
ファイルで build
スクリプトが検出されると、node.js ランタイムは npm run build
を実行します。アプリの起動前にビルドステップをさらに制御する必要がある場合は、カスタム ビルドステップを指定できます。カスタム ビルドステップを実行するには、package.json
ファイルに gcp-build
を追加します。
ビルドで npm run build
スクリプトが実行されないようにするには、以下のいずれかを行う必要があります。
package.json
ファイルに空の値を持つgcp-build
スクリプトを追加します:"gcp-build":""
。package.json
の構成の詳細については、Node.js Buildpack の構成をご覧ください。app.yaml
ファイルに空の値を持つGOOGLE_NODE_RUN_SCRIPTS
ビルド環境変数を追加します。build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
app.yaml
ファイルの build_env_variables
セクションをご覧ください。このスクリプトの実行時には、package.json
ファイルの dependencies
フィールドと devDependencies
フィールドの依存関係を利用できます。カスタムビルド ステップが実行された後、App Engine は package.json
ファイルの dependencies
フィールドで宣言されている本番環境の依存関係のみをインストールし、node_modules
フォルダを削除して生成し直します。
カスタム ビルドステップ用のランタイムを構成する方法については、Node.js Buildpack のデプロイ時にカスタムビルド ステップを実行するをご覧ください。
例
カスタムビルド スクリプトは、CSS の前処理、クライアント側 JavaScript の圧縮、webpack
や gulp
といったツールの実行など、さまざまなタスクの前処理を行うために使用できます。
たとえば、TypeScript を JavaScript にコンパイルする場合、package.json
ファイルは次のようになります。gcp-build
スクリプトにご注意ください。
静的ファイルの提供
カスタム ビルドステップ中にファイルを生成またはコピーする場合、App Engine では app.yaml
ファイルで定義された static_dir
要素または static_files
要素のいずれかを使用してアプリから直接静的ファイルが提供されることはありません。代わりに、カスタム ビルドステップを実行する前に、スタンダード環境のサービスを提供するインフラストラクチャに静的ファイルがアップロードされます。カスタム ビルドステップで生成されたかコピーされたファイルに対してリクエストを行うと、404 NOT FOUND
HTTP エラーが発生します。