我正在使用Jenkins(CloudBess)来构建我的项目,并在每个构建中运行一些脚本以使用npm下载一些节点包。 昨天npm注册服务器遇到了麻烦,这阻碍了项目的构建周期。
为了不依赖外部服务器,有没有办法在Jenkins中保存我的node_modules /文件夹,所以我不必在每个构建中下载它们?
答案 0 :(得分:1)
CloudBees使用一个从属池来支持您的构建,本质上您可以在各种主机上运行构建,因此从一个新的工作区开始。无论如何,我们尝试分配你已经用过的奴隶以避免下载延迟 - 这适用于存储在工作区中的所有文件。
我认为这不会阻止npm存储库离线的问题。
答案 1 :(得分: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
上面是非常简单的缓存实现,否则你应该检查缓存文件是否没有损坏。