如何处理Jenkins打包npm install没有拉取到最新依赖的问题

问题背景:

我们项目中有私有依赖包 frame,是私有服务器上通过 npm 去管理。frame包 publish 之后,通过Jenkins打包时,npm install 一直没有拉取最新的代码。

思考:通过在本地直接替换 node_modules 里的 frame 包,npm run build 再部署是没有问题的。那么可能就是Jenkins打包的时候,有缓存导致的。

查看原有的Jenkins构建命令如下:

bash 复制代码
cd web/
npm cache clean --force
npm config set registry https://registry.npmmirror.com
npm i
npm run build

修改之后如下:

bash 复制代码
cd web/
directory="node_modules"
if [ -d "$directory" ]; then
    rm -r "$directory"
    echo "Directory $directory deleted"
else
    echo "Directory $directory does not exist"
fi
npm cache clean --force
npm config set registry https://registry.npmmirror.com
npm i
npm run build

主要是添加判断,如果Jenkins前端项目的工作空间中存在 node_modules 文件夹,则把node_modules 文件夹及其子文件夹都删除。然后在重新 npm install。

修改后,可以拉取到最新代码的依赖包。问题解决。

Jenkins也支持清理工作空间,可以打包前,手动清理一下工作空间

相关推荐
谢尔登13 小时前
为什么React 17开始无需在组件中引入React了?
前端·react.js·前端框架
ohyeah13 小时前
JavaScript 面向对象的本质:从对象模板到组合继承的完整演进
前端·javascript
hid5588453613 小时前
LS-DYNA在爆炸与冲击领域的应用研究:从隧道支护到地下采场爆破模拟
jenkins
Drift_Dream13 小时前
虚拟滚动:优化长列表性能的利器
前端
逃离疯人院13 小时前
前端性能深度解析:网络响应时间与实际渲染时间的鸿沟
前端
北京耐用通信13 小时前
三步打通数据壁垒:耐达讯自动化Ethernet/IP转CC-Link方案全解析。建议点赞收藏
运维·tcp/ip·自动化
羊村积极分子懒羊羊13 小时前
nginx的https的搭建
运维·nginx·https
我是若尘13 小时前
🚀 深入理解 Claude Code:从入门到精通的能力全景图
前端
老前端的功夫14 小时前
Webpack 深度解析:从配置哲学到编译原理
前端·webpack·前端框架·node.js
像风一样自由202014 小时前
Docker 与 Docker Compose:从零开始的容器化之旅
运维·docker·容器