json - NPM 安装在计算机之间的行为不同

标签 json node.js npm

不知道为什么会发生这种情况...一直在谷歌搜索,但我似乎找不到答案。我有 2 台 Mac,每台都有一个包含相同 package.json 文件的文件夹,其中包含 20 个依赖项的列表。当我运行“npm install”时...

计算机 1:在自己的文件夹中安装所有列出的依赖项 - 总共 20 个文件夹。

计算机 2: 安装了大量不同的文件夹 - 确切地说是 561 个。这些额外的文件夹似乎是我在 package.json 中列出的主要依赖项的依赖项。

只是好奇为什么会发生这种情况,以及是否有办法控制 npm 如何下载和分组依赖项?我很欣赏下载 561 个文件夹的计算机的整体文件大小较小...但在某些情况下,我可能需要组织分组的依赖项。

谢谢!

最佳答案

最新版本的 NPM 进行了“更扁平”的安装,其依赖关系不像早期版本那样嵌套得那么深。听起来如果你比较 NPM 版本,你会发现两台计算机上的版本不同。

这是一篇关于旧方法的文章:

npm is installing dependencies in a weird recursive way

并且,更改有关新方式的日志信息:

https://github.com/npm/npm/blob/master/CHANGELOG.md#flat-flat-flat

这样做的主要优点之一是共享(而不是重复)多个父模块使用的模块依赖项。在新的扁平化方案中,模块只有一份副本用于多个地方,而不是许多副本。

关于json - NPM 安装在计算机之间的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33601989/

相关文章:

json - 从 mongodb 获取数据时从 Nodejs 进行输出过滤

node.js - 从 Node.js 和 Typescript 中的动态文件名加载 JSON 的最佳方法是什么?

node.js - 有没有办法解决这个 "npm install"问题?

macos - 安装后找不到 Gulp 命令

json - 如果任何数组元素满足条件,则 jq 选择属性

java - JSON 对象扁平化为 CSV 一行

php - 我无法使用 sql 查询数据填充数组以将其导出为 php 中的 json 对象

javascript - Node : Communication between two servers (net)

angular - 为什么我突然得到 : ng : File C:\Users\d\AppData\Roaming\npm\ng. ps1 无法加载

javascript - 如何从 URL 获取 JSON 对象