5

我正在使用 Jenkins (CloudBees) 来构建我的项目,这会在每个构建中运行一些脚本以使用 npm 下载一些节点包。昨天 npm 注册服务器出现了问题,这阻塞了项目的构建周期。

为了不依赖外部服务器,有没有办法将我的node_modules文件夹保存在 Jenkins 中,这样我就不必在每次构建时都下载它们?

4

2 回答 2

1

CloudBees 使用一个从属池来支持您的构建,本质上您可以让构建在各种主机上运行,​​因此从一个新的工作区开始。无论如何,我们尝试分配一个您已经使用过的从属设备以避免下载延迟 - 这适用于存储在工作区中的所有文件。

我认为这不会阻止 npm 存储库离线的问题。

于 2013-11-06T12:01:04.013 回答
1

您可以检查package.json文件和备份node_modules目录。

当您在 jenkins 中开始下一次构建时,只需检查 package.json 文件和 node_modules 备份,如果 package.json 文件没有更改,则使用以前的备份。

PKG_SUM=$(md5sum package.json|cut -d\  -f 1)
CACHED_FILE=${PKG_SUM}.tgz
[[ -f ${CACHED_FILE} ]] && tar zxf ${CACHED_FILE}
npm install
[[ -f ${CACHED_FILE} ]] || tar zcf ${CACHED_FILE} node_moduels

上面是比较简单的缓存实现,否则应该检查缓存文件有没有损坏。

于 2017-09-18T02:01:55.947 回答