如何修复Jenkins构建React应用流水线的‘script returned exit code 1’错误
排查Jenkins构建React应用返回错误码1的方案
1. 先抓详细错误日志
错误码1只是通用失败标记,必须看Jenkins控制台输出的完整报错信息——里面肯定有具体的失败原因,比如依赖装不上、Node版本不对、权限不足、环境变量缺失这些细节,这是排查的核心第一步。
2. 对比本地与Jenkins的环境差异
- Node.js/npm版本:本地执行
node -v和npm -v,在Jenkins流水线里加两步打印版本:
版本不匹配是常见坑,比如某些React依赖对Node版本有硬性要求,用Jenkins的NodeJS插件配置和本地一致的版本就行。sh 'node -v' sh 'npm -v' - 依赖安装逻辑:本地用
npm还是yarn?Jenkins里必须用同款。另外可以尝试清理Jenkins工作区的旧依赖:sh 'rm -rf node_modules package-lock.json' sh 'npm install' - 环境变量:本地有没有自定义的
REACT_APP_*这类环境变量?Jenkins里要同步配置,也可以在流水线里打印环境变量对比:sh 'printenv'
3. 检查Jenkins工作区权限
Jenkins默认用jenkins用户运行,可能没有工作区的读写权限,导致装依赖或写构建产物失败。在流水线里加两步验证:
sh 'whoami' sh 'ls -la'
如果权限不够,调整Jenkins工作目录的权限就行,别随便用sudo,尽量给jenkins用户配好对应目录的读写权限。
4. 在Jenkins服务器上手动复现
切换到Jenkins运行的用户,手动跑一遍构建流程:
su jenkins cd /var/lib/jenkins/workspace/你的项目目录 npm install npm run build
直接在服务器上操作能看到更直观的报错,比在Jenkins日志里找更高效,能快速定位问题。
5. 核对构建命令细节
检查Jenkins里的构建命令和本地是否完全一致:有没有拼写错误(比如把build写成bild)?有没有漏加本地用的参数?比如本地是否指定了自定义配置文件,Jenkins里没加?
常见问题的快速解决
- 依赖安装失败:大概率是Jenkins访问不了npm仓库,换国内镜像试试:
sh 'npm install --registry=https://registry.npmmirror.com' - Node版本不兼容:在Jenkins的NodeJS插件里添加对应版本,然后在流水线中指定:
nodejs('Node.js 18') { // 这里填你配置的Node版本名称 sh 'npm install' sh 'npm run build' } - 内存不足:React构建吃内存,给Node加内存参数:
sh 'NODE_OPTIONS="--max-old-space-size=4096" npm run build'
内容的提问来源于stack exchange,提问作者sarfraz ahmad
相关产品推荐
相关产品推荐

