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

Posted

技术标签:

【中文标题】为啥 AWS amplify 无法识别更新的节点版本?【英文标题】:Why does AWS amplify does not recognize updated node version?为什么 AWS amplify 无法识别更新的节点版本? 【发布时间】:2021-12-29 20:24:02 【问题描述】:

我在本地机器上升级了节点,并从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.

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

我的试验:

添加引擎:节点到我的 package.json
"engines": 
    "node": ">=12.22.0"
  
运行这些命令:
sudo npm cache clean -f
sudo npm install -g n
仔细检查了我的节点版本:
node -v                                                                              
v16.13.0
使用 yarn install 删除并安装 node modules 文件夹

为什么还会出现这个错误?

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于为啥 AWS amplify 无法识别更新的节点版本?的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS Amplify 和 App Sync 与使用 Mongodb 的现有节点服务器

为啥我的 AWS-Amplify 注册请求不包含某些参数?

更新AWS Amplify中现有应用程序的回购访问密钥

AWS Amplify and React - 找不到模块:无法解析“@aws-amplify/analytics”

Aws Amplify:部分更新(突变)

如何防止更新 AWS Amplify GraphQL API 的 ownerField?