我们都知道使用 npm 下载依赖项非常耗时,特别是当我们仅限于旧的 npm 版本时。
对我来说,作为一名开发人员,这不是什么大问题,因为我不得不在我的本地开发机器上这样做几次,而且一切都与我项目文件夹中的 node_modules 缓存一起工作。但现在我想使用 Jenkins 将这些应用程序带到 CI 环境中。
我意识到用 npm 下载依赖项花费了大量时间。这是一个问题,因为:
npm下载依赖在项目的文件夹下,而不是像Maven的/home/user/.m2这样的全局文件夹
我必须在每次运行时清理 Jenkins 工作区文件夹,以避免 git checkout 出现问题。
我想要一个非常优雅的解决方案来缓存我的 Jenkins slaves 上的 npm 依赖项,但到目前为止我只能想到:
从 Jenkins 工作区中删除除 node_modules 文件夹以外的所有内容。我不喜欢这样,因为如果我继续为我的项目创建分支,我可能会消耗大量硬盘。每个分支创建一个工作区。
在每次安装 npm 后执行类似
cp ./node_modules/home/npm_cache
的操作,然后在代码 checkout 后执行cp/home/npm_cache ./node_modules
之类的操作。
我觉得这些解决方案很糟糕。必须有更好的方法来做到这一点。
最佳答案
NPM 有一个全局缓存存储在~/.npm
关于node.js - 在 Jenkins 管道上缓存 NPM 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46870020/