根據預設,如果系統在 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 建構套件設定。 在
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 建構套件的「在部署期間執行自訂建構步驟」一文。
範例
自訂建構指令碼可用於預先處理工作,如預先處理 CSS、壓縮客戶端的 JavaScript,或是執行 webpack
或 gulp
等工具。
舉例來說,如要將 TypeScript 編譯為 JavaScript,您的 package.json
檔案看起來可能如下所示:請注意 gcp-build
指令碼:
提供靜態檔案
在自訂建構步驟中產生或複製檔案時,App Engine 不會使用 app.yaml
檔案中定義的 static_dir
或 static_files
元素,直接從應用程式提供這些靜態檔案。App Engine 會先將靜態檔案上傳至標準環境的服務基礎架構,再執行自訂建構步驟。如果要求在自訂建構步驟中產生或複製的檔案,會導致 404 NOT FOUND
HTTP 錯誤。