我想迁移到 PNPM,但是,我找不到在 Google Cloud 上使用其锁定文件的方法。我当前的
cloudbuild
配置如下:
steps:
- name: "gcr.io/google.com/cloudsdktool/cloud-sdk:latest"
entrypoint: 'gcloud'
args: ["app", "deploy"]
timeout: "1600s"
据我所知,这些官方镜像仅支持 Yarn 和 NPM。这里有一个简单的方法可以用 PNPM 替换 Yarn 吗?
我查看了 Cloud Builders GitHub 存储库,但那里也没有 PNPM。
IIUC App Engine 标准节点运行时要求您使用 npm 或 YARN。因此,在使用标准时,PNPM 不能由用户定义。
https://cloud.google.com/appengine/docs/standard/nodejs/specifying-dependency
如果您想将 App Engine 与不同的包管理器一起使用,您可以使用 flex 并定义自定义运行时。这本质上允许您定义要部署到 App Engine 的容器映像,这可以是在
:8080
上公开 httpd 的任何内容。
您也许可以使用
pnpm install
,然后使用 npm shrinkwrap
。我认为 gcloud deploy
会忽略 node_modules
中的内容而支持 package-lock.json
,但你可以删除它。
npm i -g pnpm && pnpm i && npm shrinkwrap
那就是
npm shrinkwrap
。有 pnpm shrinkwrap
但会生成 pnpm 风格的锁定文件。
你可以使用bash:
- id: Install pnpm
name: 'node:20'
script: |
#!/usr/bin/env bash
npm install --global [email protected]
pnpm install
pnpm test