jenkins部署前端项目打包时报错npm ERR! code ELIFECYCLE

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! normalproduct@1.0.0 test: `cross-env NODE_ENV=production env_config=test node build/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the normalproduct@1.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-07-12T19_43_15_621Z-debug.log
Build step 'Execute shell' marked build as failure
Finished: FAILURE

jenkins在部署的时候突然就报错这样子的信息,百度说这样子是缓存的原因,于是清除缓存,删除node_modules和package-lock.json。就在命令里面添加了以下代码,结果还是不行...

rm -rf node_modules   //强制删除包
rm package-lock.json  //删除这个文件
npm cache clear --force //清除缓存
npm install //安装初始化项目

继续找问题,部署其他项目都没报错,就唯独部署这一个项目报错,所以锁定就是这个项目的问题,问了同事也没有更新依赖和配置什么的。就只是最近的一次提交部署就报错了。我尝试部署很早以前拉的一个分支居然不报错,部署成功了。那么就锁定到了肯定是最新这个分支代码有什么问题导致的,但是本地打包是没问题的,而且本地手动部署到服务器也是完全没问题的。这样子我们打包没问题,jenkins服务器打包有问题那么是不是两个系统的问题呢,可能是某些兼容的问题呢。

最后我看了最新的提交代码,一行一行的比对,最后找到问题了!!! 真是不负有心人啊....

居然是引入文件大小写的问题,就是一个路由引入文件的时候写的小写字母,但是文件名是大写字母。把这个修改好了就没问题了,最后猜想是不是linux系统对大小写是强制规定的,而我们电脑的系统对大小写是没有强制的呀。

也不知道猜想对不对,但确实解决了这个问题。

做一个爱学习的前端小小小朋友~