如何处理Jenkins打包npm install没有拉取到最新依赖的问题

问题背景:

我们项目中有私有依赖包 frame,是私有服务器上通过 npm 去管理。frame包 publish 之后,通过Jenkins打包时,npm install 一直没有拉取最新的代码。

思考:通过在本地直接替换 node_modules 里的 frame 包,npm run build 再部署是没有问题的。那么可能就是Jenkins打包的时候,有缓存导致的。

查看原有的Jenkins构建命令如下:

cd web/
npm cache clean --force
npm config set registry https://registry.npmmirror.com
npm i
npm run build

 修改之后如下:

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

相关推荐

  1. git 如何最新代码

    2024-04-04 05:16:09       31 阅读
  2. centos8nginx最新版本本地

    2024-04-04 05:16:09       46 阅读
  3. Jenkins打包问题

    2024-04-04 05:16:09       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-04 05:16:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-04 05:16:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-04 05:16:09       82 阅读
  4. Python语言-面向对象

    2024-04-04 05:16:09       91 阅读

热门阅读

  1. 常见的sql优化策略

    2024-04-04 05:16:09       40 阅读
  2. 嵌入式开发中状态模式实现

    2024-04-04 05:16:09       32 阅读
  3. 一些常见的jenkins问题和答案

    2024-04-04 05:16:09       31 阅读
  4. Springboot集成token认证

    2024-04-04 05:16:09       28 阅读
  5. C++基础语法、算法、数据结构的简化总结

    2024-04-04 05:16:09       49 阅读
  6. ClickHouse开发相关(UDAF)

    2024-04-04 05:16:09       35 阅读