避免每次在CI环境中安装所有node_modules依赖项

时间:2015-02-11 15:34:40

标签: node.js jenkins gradle npm

我的项目中有多个模块,其中只有一个是节点项目。然后我使用gradle-node-plugin与其他模块集成。由于我使用jenkins进行CI,我希望jenkins完全擦除项目目录并检查最新版本,每次默认行为都是npm install(这里是通过gradle-node-plugin npmInstall包装,但是情况相同用于普通npm)每次触发CI重建时都会下载所有依赖项。

我想知道是否有可能在全局某处安装package.json个依赖项(例如gradle-node-plugin中的.gradle/nodejs/<node-dist>/lib/node_modules/或者在构建树之外保留node_modules(例如, jenkins工作区文件夹)。

修改

由于项目中设置的所有节点依赖项实际上大约需要300MB,因此代理缓存似乎不足以因为几个因素 - 解析所有这些因素所需的大小,时间以及下载后需要重新编译某些依赖项(例如socket-io)。目前,我们正在使用build.gradle中定义的解决方法,将node_modules移动到不会被清除的父文件夹,而不是使用符号链接。解决方法仅在Jenkins环境中激活。

1 个答案:

答案 0 :(得分:0)

你是否想要创建一个mirror of the npm repository,如果有的话,有一个npm模块可以做到这一点

  

npm-mirror是一个用于镜像npm包子集的实用程序   另一个npm注册表。它同步了a的所有依赖项   特定的节点模块,并将它们写入本地文件系统,以便   简单的Web服务器可以像commonjs兼容包一样工作   注册表中。