在Amazon Linux 2的AWS Amplify中使用Node.js 18失败问题咨询
解决AWS Amplify上Node.js 18在Amazon Linux 2构建时的GLIBC版本错误
问题根源
Amazon Linux 2自带的GLIBC版本是2.26,而Node.js 18编译时依赖GLIBC 2.27及以上版本,直接安装官方Node.js 18包会触发兼容性报错。
可行解决方案
方案一:用nvm安装适配版Node.js 18
修改Amplify的amplify.yml构建配置,通过nvm安装能兼容Amazon Linux 2的Node.js 18:
version: 1 frontend: phases: preBuild: commands: - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - nvm install 18 --reinstall-packages-from=16 - nvm use 18 build: commands: - npm install - npm run build
nvm安装的Node.js是针对当前环境编译的版本,能避开系统GLIBC版本限制。
方案二:使用AWS官方的Corretto Node.js
AWS提供的Corretto Node.js专门适配Amazon Linux环境,不会有GLIBC依赖问题:
修改amplify.yml的preBuild步骤:
version: 1 frontend: phases: preBuild: commands: - sudo yum install -y corretto-nodejs-18 - sudo alternatives --set nodejs /usr/bin/corretto-nodejs-18 build: commands: - npm install - npm run build
方案三:切换到Amazon Linux 2023镜像
如果你的应用允许更换构建镜像,直接在Amplify控制台的构建设置里把镜像换成Amazon Linux 2023——它自带GLIBC 2.34,原生支持Node.js 18,换完重新构建就行。
内容的提问来源于stack exchange,提问作者Sahar LaOr
相关产品推荐
相关产品推荐

