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

相关推荐
青花雅月几秒前
封装标记📌前后数据比较的表格
前端·javascript
Kjjia1 分钟前
将内容明文存储在indexDB后,被指着鼻子骂道赶紧把数据隐藏...
前端·安全
冷凌爱7 分钟前
总结HTML中的文本标签
前端·笔记·html
fydw_71514 分钟前
生产环境中安装和配置 Nginx 以部署 Flask 应用的详细指南
运维·nginx·flask
二进制coder17 分钟前
服务器健康摩尔斯电码:深度解读S0-S5状态指示灯
运维·服务器
依旧风轻21 分钟前
服务器信任质询
运维·服务器
小李小李不讲道理24 分钟前
「Ant Design 组件库探索」二:Button组件
前端·react.js·ant design
yi个名字40 分钟前
Linux文件系统详解:从入门到精通
linux·运维·服务器
WhoisXMLAPI1 小时前
利用 DNS 情报缓解报税季的网络威胁
运维·网络·安全·web安全
互联网搬砖老肖1 小时前
Web 架构之 CDN 加速原理与落地实践
前端·架构