如何在 Amplify 控制台的配置步骤中更改节点版本

Slo*_*rsh 17 amazon-web-services node.js aws-amplify

我面临无法通过 AWS Amplify 控制台构建 Angular 应用程序的问题:“您正在运行 Node.js 的 v8.12.0 版本,Angular CLI 8.0+ 不支持该版本。官方 Node.js 版本是支持 10.9 或更高版本。请访问https://nodejs.org/en/以查找有关如何更新 Node.js 的说明。”

现在我想在配置步骤中将docker容器的默认节点版本设置为容器中已经定义的VERSION_NODE_10。

# Framework Versions
ENV VERSION_NODE_8=8.12.0
ENV VERSION_NODE_6=6
ENV VERSION_NODE_10=10
ENV VERSION_NODE_DEFAULT=$VERSION_NODE_8 <-- Change this to $VERSION_NODE_10
ENV VERSION_RUBY_2_3=2.3.6
ENV VERSION_RUBY_2_4=2.4.3
ENV VERSION_RUBY_DEFAULT=$VERSION_RUBY_2_3
ENV VERSION_HUGO=0.51
ENV VERSION_YARN=1.13.0
Run Code Online (Sandbox Code Playgroud)

放大.yml:

# Framework Versions
ENV VERSION_NODE_8=8.12.0
ENV VERSION_NODE_6=6
ENV VERSION_NODE_10=10
ENV VERSION_NODE_DEFAULT=$VERSION_NODE_8 <-- Change this to $VERSION_NODE_10
ENV VERSION_RUBY_2_3=2.3.6
ENV VERSION_RUBY_2_4=2.4.3
ENV VERSION_RUBY_DEFAULT=$VERSION_RUBY_2_3
ENV VERSION_HUGO=0.51
ENV VERSION_YARN=1.13.0
Run Code Online (Sandbox Code Playgroud)

有谁知道如何更改默认值?

Jim*_*one 26

NodeJS 的自定义构建镜像非常痛苦。

我通常这样做:应用程序设置 > 构建设置 > 构建映像设置,然后单击编辑。实时包更新:Node.js 版本 > 版本。

在此输入图像描述


ric*_*ard 19

AWS Amplify 用于nvm处理节点版本。尝试这个:

version: 0.1
backend:
  phases:
    build:
      commands:
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple
frontend:
  phases:
    preBuild:
      commands:
        - nvm use $VERSION_NODE_10
        - npm ci
    build:
      commands:
        - nvm use $VERSION_NODE_10
        - node -v
        - npm run-script build
  artifacts:
    baseDirectory: dist/cr-client
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
Run Code Online (Sandbox Code Playgroud)

  • 如果您在存储库根目录中保留“.nvmrc”文件,则可以轻松安装和使用您想要的任何节点版本。使用预构建命令“nvm install”和“nvm use”,无需指定特定版本。(遗憾的是,Amplify 的 nvm 似乎不支持 2018 年的 `--no-progress` 选项 nvm [添加](https://github.com/nvm-sh/nvm/pull/1422)。) (3认同)

Jan*_*sio 12

正确答案实际上不是正确答案。

您应该使用 NodeJS 的自定义构建映像来正确运行您的应用程序,而无需通过 nvm 更改节点版本。

要做到这一点:

  1. 打开“放大控制台”
  2. 打开“所有应用”
  3. 选择您要更改 NodeJS 版本的应用程序
  4. 打开“构建设置”
  5. 向下滚动到“构建图像设置”框并点击“编辑”按钮
  6. “构建映像”下拉菜单中,选择“构建映像”选项
  7. 一个新的输入字段将出现在这个下拉列表的正下方,现在写下你正在寻找的Docker 镜像名称(与 Dockefile 中使用的相同)。例如node:12.16.1
  8. 节省
  9. 重新部署任何构建。

  • 由于 docker hub 的速率限制,现在会间歇性失败,因为放大 IP 受到速率限制!所以我不得不回滚到 nvm 解决方案。 (5认同)
  • 这是 github 线程,更详细地描述了此解决方案,并附有 Amplify 控制台设置的附加图片 https://github.com/aws-amplify/amplify-cli/issues/3187 (2认同)

ton*_*ata 9

截至 2024 年 1 月 25 日更新

它仍然有效...

截至 2023 年 11 月 13 日更新

它仍然有效。

截至 2022 年 12 月 4 日更新

对我来说最有效的办法是在 Docker Hub 上使用 NodeJS Docker 镜像的自定义构建。

您需要执行以下操作:

  • 转到 AWS 放大
  • 转到“构建设置”
  • 向下滚动到“构建图像设置”
  • 点击“编辑”按钮
  • 在“构建映像”下,单击下拉按钮
  • 选择“Build Image”(默认情况下选择Linux:2,至少对我来说是这样)
  • 在文本字段中输入,例如“node:18.12.1”
  • 返回到最新的部署并单击“重新部署此版本”应用程序
  • 卷一个 J 并抽它,现在一切都应该是绿色的

这样,您就可以使用您需要的任何 NodeJS 版本。至少,NodeJS 18 对我有用,我不需要另一个。

在构建期间,您可以在“Provision”选项卡中看到它们实际上使用 Docker Hub 的自定义构建:

在此输入图像描述


我尝试了上面的两个答案,但它们对我不起作用。


我没想到这一点。Github 上的“dncrews”用户分享了这种方法。 看一下这个


May*_*tel 5

接受的答案对我不起作用。

在配置步骤中更改节点版本的唯一方法是拥有自己的构建设置。

然而,有一种更简单的方法可以实现这一点。

就我而言,我想要最新的 Node 10 版本。在预构建步骤中添加 nvm install 是有效的。

frontend:
  phases:
    preBuild:
      commands:
        - nvm install 10
Run Code Online (Sandbox Code Playgroud)

您可以通过在预构建步骤中安装来安装和使用放大中的任何节点版本。使用nvm切换node版本。

preBuild:
  commands:
    - nvm install <node version>
Run Code Online (Sandbox Code Playgroud)

放大控制台输出:

# Executing command: nvm install 10

2020-09-09T13:36:19.465Z [INFO]: Downloading and installing node v10.22.0...
2020-09-09T13:36:19.544Z [WARNING]: Downloading https://nodejs.org/dist/v10.22.0/node-v10.22.0-linux-x64.tar.gz...
2020-09-09T13:36:19.664Z [WARNING]: ########
2020-09-09T13:36:19.665Z [WARNING]: 11.9%
2020-09-09T13:36:19.765Z [WARNING]: #######
2020-09-09T13:36:19.765Z [WARNING]: ########################                                           43.5%
2020-09-09T13:36:19.832Z [WARNING]: ################################
2020-09-09T13:36:19.832Z [WARNING]: ######################################## 100.0%
2020-09-09T13:36:19.844Z [WARNING]: Computing checksum with sha256sum
2020-09-09T13:36:19.934Z [WARNING]: Checksums matched!

2020-09-09T13:36:20.842Z [INFO]: Now using node v10.22.0 (npm v6.14.6)
Run Code Online (Sandbox Code Playgroud)