如何在GitLab CI中设置指定npm版本解决npm doctor报错问题
问题原因
你使用的node:16是浮动版本标签,对应镜像内置的npm版本与你本地的v7.24.0不一致,npm doctor默认会校验npm推荐版本,版本不匹配就会报错终止流水线。
解决方案
你可以根据实际需求选择以下任意一种方案解决:
方案1:流水线中主动安装指定版本npm
修改.gitlab-ci.yml配置,在所有npm相关操作前全局安装指定版本的npm,修改后配置示例如下:image: node:16 build: stage: build script: # 优先安装指定版本npm - npm install -g npm@7.24.0 - npm ci - nodejs -v - npm -v - npm run build:prod - npm doctor方案2:忽略npm doctor的版本校验规则
如果你确认当前镜像自带的npm版本不会影响项目正常构建运行,可以调整npm doctor命令,跳过npm版本检查项,修改对应命令为:npm doctor --ignore-checks=npm-version方案3:固定使用版本匹配的基础镜像
替换原来的浮动标签node:16,选择内置npm版本刚好为v7.24.0的Node.js精确版本镜像即可。从你的报错日志可知node v16.9.1内置的npm版本符合要求,直接将镜像配置改为image: node:16.9.1即可固定环境版本,无需额外修改构建脚本。
内容的提问来源于stack exchange,提问作者adrisons
相关产品推荐
相关产品推荐

