在Docker容器中预缓存node_modules

时间:2016-08-03 06:51:17

标签: node.js docker npm continuous-integration npm-install

令我感到沮丧的是,为使用Node工具链(如Grunt和Gulp)的项目构建CI需要相当长的时间,其中大部分都由npm install消耗。

我已经尝试设置一个Docker镜像,预先烘焙了npm缓存中的所有node_module依赖项(每个都在我的package.json文件中声明的相同的固定版本),但即使这样,构建仍然需要花费几分钟的时间才真正需要将npm缓存中的几个目录复制到我的项目的node_modules中。

我已将cache-min设置为9999999,但似乎还需要更长的时间。

我看了local-npmnpm_lazy,但它们似乎超过顶部,前者需要很长时间才能安装 - 我怀疑它正在尝试下载现有的每个单独的npm模块 - 我只需要数量有限,无需运行Web服务器即可从Docker容器中为它们提供服务。

......我错过了什么?必须有一种更快的方式来运行CI构建...

1 个答案:

答案 0 :(得分:0)

我能够通过使用.npmrc指向docker容器中的npm缓存来使其工作。我建议您将docker exec放入容器中并运行npm config list | grep cache以确保使用缓存。