NPM node_modules结构每次运行时都会发生变化" npm install"

时间:2018-01-09 08:23:23

标签: node.js npm node-modules

我在Github中有两个私有存储库,包含package.json,其中一个存储库是另一个存储库的依赖项。像这样

Repo_A
   |
   |__ Reop_B
在Repo_A的package.json中的

我有:

dependencies: {
   "Repo_B": "GithubUser/Repo_B"
}

我想在我的项目中使用Repo_A,所以我运行:

npm install GithubUser/Repo_A --save

此命令将同时安装Repo_A和Repo_B 但问题是Repo_A和Repo_B在我的主项目的node_molules文件夹中是嵌套的(并且不是平的)。

node_modules
           |
           |_Repo_A
                  |
                  |_ node_modules
                                |
                                |_Repo_B

并且运行npm install agian Repo_A和Repo_B这次将在node_mudules中变平!

node_molules
           |
           |_Repo_A
           |
           |_Reop_B

再次运行npm install会使Repo_A和Repo_B再次嵌套! 这个事件每隔一次重复npm install 你有什么建议吗?

更新

我的问题不是嵌套或平面依赖!我的问题是,每次运行npm install我都会在平面和嵌套之间切换!

2 个答案:

答案 0 :(得分:0)

事实上,我之前也遇到过这个问题。 现在我在安装后使用npm dedupe来确保依赖树尽可能平坦。

请考虑dedupe doesn't always dedupe

答案 1 :(得分:0)

这可能令人不安,这就是npmjs发布完整指南的原因,他们解释了如何存储依赖关系。

enter image description here

  

但是,由于B v1.0已经是顶级dep,我们无法将B v2.0安装为顶级依赖项。 npm v3通过默认为npm v2行为并在需要它的模块下嵌套新的,不同的模块B版本依赖项来处理这个问题 - 在本例中为模块C.

玩得开心