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

我在我的项目中有多个模块,其中只有一个是节点项目。 然后,我使用gradle-node-plugin与其余的模块集成。 因为我使用jenkins的CI,我想让jenkins做项目目录和结帐最近版本的全部擦拭每次默认行为是npm install (这里通过gradle-node-plugin npmInstall包装,但同样的情况是普通的npm)下载所有每次CI重build已被触发时,依赖关系。

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

编辑:

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

你是否想要创build一个npm仓库的镜像 ,如果有的话,还有一个npm模块来做到这一点

npm-mirror是一个用于从另一个npmregistry镜像npm包的子集的工具。 它同步特定节点模块的所有依赖关系,并将它们写入本地文件系统,这样一个简单的networking服务器就可以像commonjs兼容包registry那样工作。