首页 > 解决方案 > .npm 缓存与 node_modules 大小

问题描述

在构建我们的节点应用程序时,我们使用 .npm 缓存,如下所示:

npm install --cache /tmp/node-cache/.npm --prefer-offline

但是我有理由相信,缓存无法正常工作,因为:

/tmp/node-cache/ # du -sh .npm/
177M    .npm/

/tmp/build/ # du -sh node_modules/
1.1G    node_modules

这是否意味着构建下载了额外的 900 M 并且没有将它们缓存在.npm目录中?

标签: node.jsnpmnpm-install

解决方案


这是否意味着构建下载了额外的 900 M 并且没有将它们缓存在 .npm 目录中?

这是可能的。但也有可能是由于压缩和构建工件的组合造成的差异。

npm 缓存被压缩。node_modules目录未压缩。

此外,npm几乎可以肯定只缓存源代码。如果您正在使用类似、、、或其他具有自定义安装脚本或其他构建步骤的东西,那么构建工件可能会使您node-sass的.PhantomJSpuppeteernode_modules

我不一定仅从缓存没有得到尊重的大小差异得出结论。你将不得不做更多的调查。您可能会尝试的一件事是:

  • 删除node_modulespackage-lock.json如果存在)
  • npm cache clean --force并确认缓存非常小
  • npm install
  • node_modules再次检查缓存的大小。

推荐阅读