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

相关推荐
网络小白不怕黑6 小时前
Docker容器网络:四大模式解析与自定义网络
运维·docker·容器
天天扭码7 小时前
如何实现流式输出?一篇文章手把手教你!
前端·aigc·ai编程
前端 贾公子7 小时前
vue移动端适配方案 === postcss-px-to-viewport
前端·javascript·html
GISer_Jing8 小时前
AI营销增长:4大核心能力+前端落地指南
前端·javascript·人工智能
明远湖之鱼9 小时前
一种基于 Service Worker 的渐进式渲染方案的基本原理
前端
前端小端长9 小时前
Vue 中 keep-alive 组件的原理与实践详解
前端·vue.js·spring
FeelTouch Labs9 小时前
Nginx核心架构设计
运维·前端·nginx
程序员zgh10 小时前
Linux系统常用命令集合
linux·运维·服务器·c语言·开发语言·c++
gwd20010 小时前
如何快速设置 Docker 代理设置
运维·人工智能·docker·容器