通过在 package.json
文件中添加声明,您可以为 Node.js 应用指定依赖项。
例如,如果要将 Lodash 指定为依赖项,则 package.json
文件可能如下所示:
{
"dependencies": {
"lodash": "^4.0.1"
}
}
在部署期间,Node.js 运行时会自动安装您的 package.json
文件中声明的全部 dependencies
。默认情况下使用 npm install
命令,但也支持 Yarn 和 Pnpm 软件包管理器:
Yarn:如果存在
yarn.lock
文件,系统会改用yarn install --production
命令。Pnpm:如果存在
pnpm-lock.yaml
文件,系统会改用pnpm install
命令。
请注意,您必须确保 app.yaml
文件的 skip_files
部分中未指定 yarn.lock
或 pnpm-lock.yaml
文件。
默认情况下,App Engine 会缓存已提取的依赖项,以缩短构建时间。如需在安装依赖项时忽略缓存,请使用以下命令:
gcloud app deploy --no-cache
对标准环境中 package.json
文件的支持和限制:
您可以在 App Engine 中使用任何与 Linux 兼容的 Node.js 包,包括需要原生 (C) 扩展程序的包。
如果在您的
package.json
中指定了engines
字段,则必须定义兼容的 Node.js 版本。您在
devDependencies
字段下定义的所有依赖项都将被忽略,并且不会在 App Engine 中为您的应用安装。如需获得最佳性能,
start
脚本应该是轻量级的,并且不包含构建步骤,因为每次创建应用的新实例时该脚本都会运行。
Artifact Registry 的专用依赖项
如果您的应用使用专用 npm 模块,则您可以使用 Artifact Registry Node.js 软件包代码库来托管专用依赖项。部署应用时,构建流程会自动为 Cloud Build 服务账号生成 Artifact Registry 凭据,因此您无需生成其他额外的凭据。如需添加专用依赖项,请列出 Artifact Registry 代码库,并配置应用目录的 .npmrc
文件中的设置,以便进行注册表身份验证。例如:
@SCOPE:registry=https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
//REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME:always-auth=true
请注意,此方法也适用于 Yarn v1 软件包管理系统。如果您使用的是 Yarn v2 或更高版本,请列出 Artifact Registry 代码库,并配置应用目录中的 .yarnrc.yml
文件中的设置,以向注册表进行身份验证。例如:
npmScopes:
SCOPE:
npmRegistryServer: https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
npmAlwaysAuth: true
然后,将您的软件包添加到 package.json
文件中。例如:
{
"dependencies": {
" @SCOPE/my-package": "^1.0.0"
}
}
安装网络框架
要让应用能够处理 Web 请求,您需要使用 Web 框架。您可以使用任何 Node.js Web 框架,包括:
如需使用特定 Web 框架(例如 Express.js),请将框架添加到 package.json
文件:
例如,生成的 package.json
文件可能如下所示:
{
"dependencies": {
"lodash": "^4.0.1",
"express": "^4.16.2"
}
}
安装 Cloud 客户端库
Node.js 版 Cloud 客户端库是 Node.js 开发者与 Google Cloud 服务集成的惯用方式,例如 Datastore 模式 Firestore (Datastore) 和 Cloud Storage。
要为 Cloud Storage 安装 Node.js 客户端库,请执行以下操作:
使用软件包管理系统在本地安装 Cloud 客户端库:
要使用
npm
,请运行以下内容:npm install --save @google-cloud/storage
要使用
yarn
,请运行以下内容:yarn add @google-cloud/storage
要使用
pnpm
,请运行以下内容:pnpm add @google-cloud/storage
设置身份验证。您可以将 Node.js 版 Cloud 客户端库配置为自动处理身份验证。
利用适用于 Cloud Storage 的 Node.js 客户端库参考,在您的应用中实现对 Cloud Storage 服务的支持。