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

相关推荐
小小哭包8 分钟前
Nginx配置文件nginx.conf中文详解
运维·nginx
weixin_4316972012 分钟前
onlyoffice预览nginx代理的静态文件
运维·nginx
杨云龙UP17 分钟前
从0搭建Oracle ODA NFS异地备份:从YUM源到RMAN定时任务的全流程
linux·运维·数据库·oracle
DN金猿18 分钟前
恢复 Linux 上误删除的文件
linux·运维·服务器
6***A66344 分钟前
Nginx 反向代理配置
运维·nginx
差点GDP1 小时前
模拟请求测试 Fake Rest API Test
前端·网络·json
远瞻。1 小时前
【环境配置】Ubuntu系统安装cuda
linux·运维·ubuntu
kyle~1 小时前
Linux---<unistd.h>类Unix系统编程核心头文件
linux·运维·unix
bendan501 小时前
服务通过docker部署后,调用确定相互调用的URL
运维·docker·容器
闲人编程2 小时前
OpenAPI/Swagger规范与API文档自动化
运维·自动化·json·swagger·schema·openapi·codecapsule