2017-01-23 57 views
1

运行npm install --no-optional时,每次完成需要大约3分钟。它安装〜200MB的文件。我想加快构建过程,但我找不到任何方法来加快构建过程。每次运行时npm安装非常慢

npm install默认缓存依赖(像任何其他像样的工具例如mavensbtnuget)默认?如果是的话,它不应该比那更快吗?如果不是,那么为什么以及如何解决这个问题?

我发现npm-cache软件包,但似乎.tar所有的依赖关系,当它们都没有改变时,npm-cache将重新使用tar文件。这样做的缺点是,只要发生了一些小的依赖关系变化,它就无法重用缓存(从我的理解中)。

有没有什么好的资源,为什么这是缓慢的,以及如何加快它的缓存如何与一般npm工程?我用过的其他工具(sbt,maven,nuget)要快得多,因此我对npm的预期也很高。

我看到的另一个选项是npm install -g,但它似乎不是解决任何问题,因为它是meant to be used for installing some cli tools像grunt,npm-cache等,因为它将它们添加到路径中。所以这绝对不能解决问题。

npm -v: 4.0.5 
node -v: 6.8.1 
+1

不是一个真正的答案,但[纱线](https://yarnpkg.com/)是一个伟大的,更快的替代npm – nem035

+0

另一种选择是pnpm –

+0

这帮助我从2:30到30秒 - http ://stackoverflow.com/a/42124305/702347 – Ondra

回答

1

与节点的问题是,从SBT背景,其中SBT使用本地缓存常春藤对缓存依赖未来,我期望从节点相同的行为。因此,至少达到V 5.0,Node没有适当的依赖性缓存机制,因此您每次使用干净的node_modules文件夹执行node install时,基本上都需要重新下载所有依赖项。

有人开发了一些工具来解决这个问题,但没有一个能令人满意。

但是看起来这可能已经在节点V 5.0中修复了一些缓存策略,因此如果您有类似的问题,请查看第5版的更改。