为什么AWS放大不识别更新的节点版本



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

我看了stackoflow和其他博客,尝试了所有的方法,但我仍然会遇到这个错误。

我的试验:

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

为什么仍会发生此错误?

您只在本地使用节点v16,由于某些原因,放大使用了较低的节点。您可以降级包(不推荐使用imho(,也可以告诉amplify使用更高节点的版本(推荐使用imho(。

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

在这里找到关于如何更改构建设置的官方文档:

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

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

最新更新