【问题标题】:Difference between npm cache and global foldernpm 缓存和全局文件夹的区别
【发布时间】:2018-04-22 10:07:50
【问题描述】:

根据文档,npm 有一个全局文件夹和一个缓存文件夹。

全局:Unix 系统上的全局安装转到 {prefix}/lib/node_modules。 Windows 上的全局安装转到 {prefix}/node_modules

缓存:缓存文件存储在 Posix 上的 ~/.npm 或 Windows 上的 ~/npm-cache 中

我知道当我运行 npm install -g PACKAGE 时,PACKAGE 存储在全局文件夹中。那么缓存中存储了什么?它的目的是什么?

【问题讨论】:

    标签: node.js npm npm-install


    【解决方案1】:

    npm 缓存只是一个 HTTP 缓存。所有 HTTP 请求都被缓存,因此如果您执行 npm install,如果它在缓存中找到包,它就不必访问网络。当您在构建过程中创建 docker 容器时,这很有用,因为它大大加快了构建速度。如果您清除缓存 - 之后的第一次,您的 npm install 会变慢,直到缓存中有您需要的包的副本。在 npm install 期间缓存被填充和访问。此外,如果您有多个项目使用相同版本的 npm 包,那么这些包的缓存中将只有一个副本。所以这是生产力的提升。

    【讨论】:

      【解决方案2】:

      基本上所有关于安装包的元数据(http 数据,一些包数据(安装的包版本作为 npm 在安装新包时通过缓存运行以进行验证))。如果您在安装新软件包时没有任何与缓存相关的特定错误,则无需担心。缓存不会自行清理,因此如果您在非常预算的内存上运行,可能需要不时查看缓存文件夹的大小,并在需要时通过npm cache clear 将其删除。

      【讨论】:

      • 感谢米兰。如果我运行 npm install package (no -g),是否会缓存除当前项目文件夹的 node_modules 之外的任何包?
      • 是的,他们会的,npm-cache 会跟踪为哪个项目安装了哪些包。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 2012-12-05
      • 2021-08-29
      • 2015-01-03
      相关资源
      最近更新 更多