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

相关推荐
谭光志4 分钟前
工具塞满上下文窗口怎么办?深度拆解 AI Agent Tool Search 按需加载实现原理
前端·后端·ai编程
Hilaku6 分钟前
前端架构师的克制:什么时候该坚决对新技术说不?
前端·javascript·程序员
SkyWalking中文站16 分钟前
认识 Horizon UI · AI Assistant:用日常语言查询你的可观测性数据
运维·监控·自动化运维
陈随易32 分钟前
前端项目部署只要30秒
前端·后端·程序员
本末倒置18333 分钟前
从 Vue CLI 迁移到 Rsbuild 后,JSX 突然全挂了?一次排查记录
前端
古夕34 分钟前
多应用同域部署下 Favicon 异常问题排查与治理
前端·javascript
YIAN35 分钟前
从零手写文件读取 MCP 服务:一文吃透 Model Context Protocol 全链路通信原理
前端·后端·mcp
Imchendiana36 分钟前
《狂人日记NO.9》— 前后端一把梭,我的全栈实录
前端·后端
逍遥运德43 分钟前
前端工程化-03:包管理NPM-package.json 和 package-lock.json 详解
前端·前端框架·前端工程化
逗逗豆巴吧1 小时前
WPS 加载项中实现当前文档直接上传
前端·javascript·ecmascript 6