我在Github中有两个带有package.json的私有存储库,其中一个存储库是另一个存储库的依赖项。
Repo_A
|
|__ Reop_B
在 package.json 中,我有Repo_A:
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
Repo_A之后Repo_B这次node_mudules
意志变得平淡无奇!
node_molules
|
|_Repo_A
|
|_Reop_B
再次运行npm install
会让Repo_A和Repo_B再次嵌套!并且此事件每隔我运行一次npm install
重复一次你有什么建议吗?
更新:
我的问题不是嵌套或平面依赖! 我的问题是每次我运行npm install
时,我都会在平面和嵌套之间切换!
事实上,我以前也遇到过这个问题。目前,我在安装后使用npm dedupe
以确保依赖项树尽可能平坦。
请注意,重复数据删除并不总是重复数据删除。
这可能令人不安,这就是为什么 npmjs 发布了一个完整的指南,其中解释了他们如何存储依赖项。
https://docs.npmjs.com/how-npm-works/npm3
但是,由于 B v1.0 已经是顶级 dep,因此我们无法将 B v2.0 作为顶级依赖项安装。 npm v3 通过默认为 npm v2 行为并将新的、不同的模块 B 版本依赖项嵌套在需要它的模块(在本例中为模块 C(下来处理此问题。
玩得愉快