如何在 google 云构建上升级节点 js 版本

How to upgrade node js version on google cloud build

所以我最近将我的应用程序从 Angular 7 升级到 Angular 8,我遇到了云构建 VM 的节点版本问题,因为 Angular 8 需要节点版本10.9 或更高,如下所示:

如何升级 Google 云 VM 的节点版本,以免再次出现此错误?

谢谢。

好吧,经过几个小时的谷歌搜索,结果是 Google 云平台提供了不同 npm 云构建器的注册表,用于 Google 云构建。

我本可以通过创建自己的 docker 图像来解决我的问题,但我想避免这种情况,转而使用默认的云构建器 docker 图像。我更改了我的 cloudbuild.yaml 文件以包含以下构建器 'gcr.io/cloud-builders/npm:node-10.10.0' 而不是 'gcr.io/cloud-builders/npm' 然后将节点版本更新为节点 10.10.0 就像魔术 Angular 8 现在可以由 google 云构建构建!

可以在此处找到云构建器存储库中的特定节点版本:https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm

按照他们文档的建议,您应该改为使用官方节点图像并指定 npm 入口点:

steps:
- name: node:10.15.1
  entrypoint: npm
  args: ['install']

https://github.com/GoogleCloudPlatform/cloud-builders/blob/master/npm/README.md

好的,在尝试编译我的新应用程序并在 Google 上搜索数小时后,在 Google 中没有关于如何使用新版本 Node.js 的明确信息应用引擎平台。

我给自己的任务是构建我自己的文件cloudbuild.yaml,以便在Google云平台上使用,这是我的结果,我希望它能帮助许多有同样错误的人:

steps:

# Install node packages
- name: node:10.16.3
  entrypoint: npm
  args: ['install']

# Build productive files
- name: node:10.16.3
  entrypoint: npm
  args: [ 'run', 'build', '--prod' ]

# Deploy to google cloud app engine
- name: "gcr.io/cloud-builders/gcloud"
  args: ['app', 'deploy', '--version=demo']

您可以在 GitHub

中访问原始文件

此 link 包含所有当前版本及其标签:

https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm

例如在cloudbuild.yaml中我使用了

使用 current 标签。

根据最新documentation:

Cloud Build enables you to use any publicly available container image to execute your tasks. The public node image from Docker Hub comes preinstalled with npm and yarn tools

这意味着我们可以使用来自 Docker Hub 的任何 Node.js 标签。

至于我,我在 cloudbuild.yaml 中将 - name: node 更改为 - name: node:lts,这有助于修复 Nest.js 应用程序构建步骤中的 Error: error:0308010C:digital envelope routines::unsupported 问题。