默认情况下,如果在 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
元素直接从您的应用提供这些静态文件。但是,App Engine 会在运行自定义构建步骤之前将静态文件上传到标准环境中的服务基础设施。对自定义构建步骤期间生成或复制的文件的任何请求都会导致 404 NOT FOUND
HTTP 错误。