AWS CodePipeline部署Elastic Beanstalk Node项目npm依赖安装失败
解决AWS CodePipeline中npm依赖安装失败的问题
核对CodeBuild环境的npm版本
CodeBuild默认镜像的npm版本可能和本地不一致,这会导致依赖安装冲突。可以在buildspec.yml里指定和本地一致的npm版本后再安装:phases: install: commands: - npm install -g npm@16.13.0 # 替换成你本地的npm版本号 - npm install提交package-lock.json/yarn.lock到仓库
本地安装依赖生成的lock文件能精准锁定依赖版本,避免CodeBuild拉取到不兼容的依赖版本。别把lock文件加到.gitignore里,提交它能让CodeBuild环境和本地保持一致的依赖结构。检查buildspec.yml的安装命令
确认buildspec.yml的install阶段命令正确,比如有没有拼写错误。如果用到私有npm包,得在CodeBuild里配置认证:phases: install: commands: - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc - npm install其中
$NPM_TOKEN要在CodeBuild项目的环境变量里提前配置好私有包访问令牌。清理CodeBuild缓存
旧缓存可能残留冲突的依赖文件,导致安装失败。可以在buildspec里添加清理命令:phases: install: commands: - rm -rf node_modules package-lock.json - npm install也可以临时关闭CodeBuild的缓存功能,测试是否能正常安装。
检查网络访问权限
如果CodeBuild用了VPC私有子网,得确保子网有NAT网关能访问外网。或者切换到国内镜像源试试:phases: install: commands: - npm config set registry https://registry.npmmirror.com/ - npm install
内容的提问来源于stack exchange,提问作者Mystery Man
相关产品推荐
相关产品推荐

