如何处理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也支持清理工作空间,可以打包前,手动清理一下工作空间

相关推荐
网安老伯5 小时前
都2026年了,还在问网络安全怎么入门?看完这一篇你就懂了
运维·计算机网络·web安全·网络安全·wireshark·密码学·网络攻击模型
liangshanbo12156 小时前
React useEffect 与 useLayoutEffect 面试题整理
前端·javascript·react.js
小祺先生6 小时前
mt7921 debian系统 如何安装驱动
运维·网络·debian
m0_459872926 小时前
Linux 系统基础
linux·运维·服务器
ID34610744206 小时前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计
fb_123456 小时前
Docker入门-第3章-容器镜像深度解析
运维·docker·容器
掰头战士6 小时前
聊聊 Function Calling,你的模型是否答非所问?
前端·typescript·agent
吴声子夜歌6 小时前
Shell编程——数组
linux·运维·shell
Yeyu6 小时前
车载多 App 同屏渲染(三):RemoteCompose 序列化 UI
前端
weixin199701080167 小时前
[特殊字符]《京东POP二手品类对接:B2C订单模型 vs 二手C2C属性的字段转换难题》(附Python源码)
前端·python·算法