为什么 AWS amplify 无法识别更新的节点版本?

Tyl*_*les 3 amazon-web-services node.js next.js aws-amplify

我升级了本地计算机上的节点并从 迁移create-react-appnextjs.

当我将代码推送到 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.
Run Code Online (Sandbox Code Playgroud)

我查看了 stackoveflow 和其他博客,并且尝试了所有方法,但仍然收到此错误。

我的试验:

  • 添加了引擎:node到我的package.json
"engines": {
    "node": ">=12.22.0"
  }
Run Code Online (Sandbox Code Playgroud)
  • 运行这些命令:
sudo npm cache clean -f
sudo npm install -g n
Run Code Online (Sandbox Code Playgroud)
  • 仔细检查我的节点版本:
node -v                                                                              
v16.13.0
Run Code Online (Sandbox Code Playgroud)
  • 删除然后使用yarn install安装节点模块文件夹

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

小智 7

您仅在本地使用节点 v16,由于某种原因放大使用较低的节点。您可以降级软件包(不推荐恕我直言)或告诉 amplify 使用更高的节点版本(推荐恕我直言)。

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

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

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


小智 5

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