npm v2中安装依赖都是树状的层级关系,而v3则是平级关系
如果c模块中同样需要b模块,但是与a中b模块不是同个版本,则这时就采用的树状结构,层层嵌套
使用 tree -d node_modules 查看树状结构
删除依赖:
原因是b V1.0已经是一个顶级的依赖,我们不能装B V2.0作为一个顶级的依赖性。因此模块B V2.0安装为模块D的嵌套依赖性,尽管我们已经有一个副本安装,嵌套模块C.下方
如果通过2+模块所需的二次依赖关系,但没有安装作为在目录层级中的顶层的依赖性,它将被复制并嵌套在主依赖性的下面。
但是,如果是由2+模块所需的二次依赖关系,但被 安装为在目录层级中的顶层的依赖性,这将不 被复制,并将被需要它的主要依赖共享。
只有一个顶层的module,其他的都是深层嵌套,如果想去除掉深层的嵌套用 npm depude
这种情况下只能适合:
升级到:
这时候用npm depude最合适.
我希望我的node_modules
目录是相同的。我怎样才能做到这一点?
该npm install
命令,从专门用来安装包时 package.json
,将始终产生相同的树。这是因为安装顺序从package.json
是始终按字母顺序排列。同样安装顺序意味着你会得到相同的树。
您可以通过删除您可靠地获得相同的依赖关系树node_modules
目录并运行npm install
每当你做出改变你的package.json
。
如果不是这样安装,而是用npm i module的话,就会产生不一样的结果,就会总上面的逻辑安装.