AWS CodeBuild构建Angular应用时出现NodeSource SSL错误如何解决?
问题根因
你的构建失败是NodeSource旧安装源停用导致的:NodeSource官方已在2024年下线了deb.nodesource.com下所有已结束生命周期的Node.js版本(12.x、14.x均已停止维护)的安装源,你之前使用的setup_12.x安装脚本已经无法正常拉取安装包,执行curl拉取脚本、安装Node.js的步骤直接报错,是你此次构建失败的直接原因。
修复方案
你可以根据你的Angular版本兼容要求,选择以下任意一种方案修改构建配置即可:
方案1:使用nvm安装指定版本Node.js(兼容性最高,不需要调整源配置)
直接替换buildspec.yml中install阶段的Node.js安装逻辑,用nvm工具安装你需要的Node.js版本,修改后install阶段配置如下:
phases: install: commands: - echo installing nodejs via nvm... # 安装nvm - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - . ~/.nvm/nvm.sh # 安装你需要的Node版本,这里示例用12.x,你可以换成14/16等兼容你项目的版本 - nvm install 12 - nvm use 12 - echo installing yarn... - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list - apt install --no-install-recommends yarn
方案2:直接使用CodeBuild预装Node.js的标准镜像(更稳定,构建速度更快)
你可以直接在CodeBuild项目的环境配置中,选择官方预装了对应版本Node.js的标准运行镜像,完全删掉buildspec里手动安装Node.js的逻辑,修改后配置如下:
phases: install: commands: - echo installing yarn... - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list - apt install --no-install-recommends yarn pre_build: commands: - echo installing dependencies... - npm i -g @angular/cli - npm install build: commands: - ng build --prod artifacts: files: - "**/*" discard-paths: no base-directory: 'dist'
操作步骤:进入CodeBuild对应项目→编辑→环境→选择镜像为「AWS托管镜像」→操作系统选Amazon Linux 2或Ubuntu→运行时选择Node.js,选择和你项目兼容的版本即可。
如果你的Angular版本较老,可以优先选方案1,不需要调整项目代码适配高版本Node.js。
内容的提问来源于stack exchange,提问作者usmany
相关产品推荐
相关产品推荐

