为什么AWS Amplify不能识别已更新的Node版本?

3

我在本地计算机上升级了Node,并从create-react-app迁移到nextjs

当我将代码推送到AWS Amplify时,我遇到了这个错误:

error game-night@0.1.0: The engine "node" is incompatible with this module. Expected version ">=12.22.0". Got "12.21.0"

error Found incompatible module.

info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

我在Stack Overflow和其他博客上查找了答案并尝试了所有的方法,但是我仍然遇到了这个错误。

我的尝试:

  • 向我的package.json文件中添加了node作为引擎。
"engines": {
    "node": ">=12.22.0"
  }
  • 运行以下命令:
sudo npm cache clean -f
sudo npm install -g n
  • 我仔细核对了我的 Node 版本:
node -v                                                                              
v16.13.0
  • 删除并使用 "yarn install" 重新安装了 node 模块文件夹

为什么仍然会出现这个错误?

2个回答

7

你只在本地使用node v16,但由于某些原因,amplify使用了较低的版本。你可以降级该软件包(我不建议这样做),或者让amplify使用更高的node版本(我建议这样做)。

frontend:
  phases:
    preBuild:
      commands:
        - nvm install 16

在此找到有关如何更改构建设置的官方文档:

https://docs.aws.amazon.com/amplify/latest/userguide/build-settings.html


4

解决问题的另一种方法是编辑 Amplify 构建设置。 您可以在应用程序设置 -> 构建设置 -> 添加包版本覆盖中指定使用特定的 Node.js 版本。


这是正确的答案。来自 Amplify 文档 - https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-image.html“我们的构建运行程序不会安装 Node,而是依赖于在镜像中安装 Node 和 NPM。这仅适用于需要 NPM 包或特定于 Node 的命令的构建。” - Triangl3s
是的,这个答案对我有帮助。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接