指定依赖项

通过在 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.lockpnpm-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 文件:

  • 使用 npm

    npm install --save express
  • 使用 yarn

    yarn add express
  • 使用 pnpm

    pnpm add express

例如,生成的 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 客户端库,请执行以下操作:

  1. 使用软件包管理器在本地安装 Cloud 客户端库:

    • 要使用 npm,请运行以下内容:

      npm install --save @google-cloud/storage
    • 要使用 yarn,请运行以下内容:

      yarn add @google-cloud/storage
    • 要使用 pnpm,请运行以下内容:

      pnpm add @google-cloud/storage
  2. 设置身份验证。您可以将 Node.js 版 Cloud 客户端库配置为自动处理身份验证

  3. 利用适用于 Cloud Storage 的 Node.js 客户端库参考,在您的应用中实现对 Cloud Storage 服务的支持。