デフォルトでは、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 エラーが発生します。