Node.js 避免每次在CI环境中安装所有节点\模块依赖项
我的项目中有多个模块,其中只有一个是节点项目。我使用then与其余模块集成。由于我将jenkins用于CI,我希望jenkins每次都能完全擦除项目目录并签出最新版本,默认行为是Node.js 避免每次在CI环境中安装所有节点\模块依赖项,node.js,jenkins,gradle,npm,Node.js,Jenkins,Gradle,Npm,我的项目中有多个模块,其中只有一个是节点项目。我使用then与其余模块集成。由于我将jenkins用于CI,我希望jenkins每次都能完全擦除项目目录并签出最新版本,默认行为是npm安装(这里通过gradle节点插件npmInstall包装器,但普通npm的情况相同)每次触发CI重建时下载所有依赖项 我想知道是否可以在全局的某个地方安装包.json依赖项(例如在.gradle/nodejs//lib/node\u modules/中的gradle-node-plugin或者将node\u-mo
npm安装
(这里通过gradle节点插件
npmInstall
包装器,但普通npm的情况相同)每次触发CI重建时下载所有依赖项
我想知道是否可以在全局的某个地方安装包.json
依赖项(例如在.gradle/nodejs//lib/node\u modules/
中的gradle-node-plugin
或者将node\u-modules
保留在构建树之外(例如在jenkins工作区文件夹中)
编辑:
由于项目中的所有节点依赖项集实际上需要大约300MB的内存,因此代理缓存似乎不够,因为只有几个因素—大小、解决所有这些问题所需的时间,以及一些依赖项在下载后甚至需要重新编译(例如socket io)目前,我们正在使用
build.gradle
中定义的变通方法,该方法将node\u modules
移动到不会被清理的父文件夹,然后使用符号链接。该变通方法仅在Jenkins环境中激活。您是否希望创建一个npm模块,如果是,则有一个npm模块来执行此操作
npm mirror是一个实用程序,用于从中镜像npm包的子集
另一个npm注册表。它同步
并将它们写入本地文件系统,以便
一个简单的Web服务器可以像一个符合commonjs的包一样工作
登记处
我已经在研究,但仍然需要重新解决所有npm(实际上也是bower)依赖关系,这需要一些时间,而且与maven/gradle构建系统相比,这似乎是不必要的任务,因为maven/gradle构建系统可以将依赖关系保留在构建树之外。无论如何,某种镜像可能是一种解决方法。