【问题标题】:Node modules size?节点模块大小?
【发布时间】:2021-01-21 19:55:04
【问题描述】:

当我在终端 npm install 中运行此命令时,我真的不明白到底发生了什么,几秒钟后,我发现 node_modules 文件夹的大小至少为 150MB 或有时更大。

这对我的网络容量来说太大了,例如当我下载一部电影时,这种速度不会发生,所以当我运行这个命令时,我需要了解真正发生了什么。

我真的要下载 150MB 或更大的文件大小,还是 npm 只是下载小文件并做一些工作使其变大!

【问题讨论】:

    标签: node.js reactjs npm npm-install


    【解决方案1】:

    如果您之前运行过npm install(甚至在另一个文件夹/目录中),后续的npm install 运行可以从本地缓存中获取一些/许多/所有包。来自https://docs.npmjs.com/cli-commands/cache.html

    npm 将缓存数据存储在配置缓存中的不透明目录中,名为 _cacache。这个目录是一个基于 cacache 的内容可寻址缓存,它存储所有 http 请求数据以及其他与包相关的数据。该目录主要通过 pacote 访问,该库负责从 npm@5 获取所有包。

    如果您想强制npm 通过网络以便比较性能,请删除您的node_modules 目录,运行npm cache clear,然后执行npm install

    【讨论】:

    • 所以 npm 会从缓存中安装所有包,除非遇到缓存中不存在或之前未安装的包??
    • 假设您的 package.json 提供了最低版本的依赖项而不是固定到特定版本,我想 npm 会查询存储库以获取将使用的最新版本,然后它会检查缓存该版本,如果它尚未在缓存中,则仅从注册表下载。它也可能使用任何满足要求的缓存版本,即使它不是最新的,但我不确定。
    【解决方案2】:

    据我了解,它会完全下载所有数据,不进行后期处理。但是它确实链接了依赖项,因此最终大小可能会更大一些。

    【讨论】:

    • 但是,我生活在一个网速相对较慢的国家,我无法在不到 5 分钟的时间内下载 300MB 大小的文件,而使用 npm 我可以在一分钟内下载相同大小的文件或者两个,这令人困惑!
    • @CodeEagle 您还必须考虑到您从中下载电影的服务器的延迟可能会更慢。
    • @PedroLourenço,这只是一个例子,我说的是用我的全速下载电影,这比我注意到的 npm 慢得多
    猜你喜欢
    • 2023-01-19
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2019-01-25
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    相关资源
    最近更新 更多