npm 依赖解决方案

2016-07-19  本文已影响3003人  竹天亮

假如有三个模块:A,B,C。A requires B at v1.0,然后C也需要B,但是版本时v2.0.如下图


npm3试图减轻这种嵌套导致的深层关系和冗余。npm3尝试通过扁平的方式安装一些第二依赖(依赖的依赖),在相同的目录作为主要需要的依赖。

下面是主要不同的关键:

例子 - Github上的

假如有一个模块,A需要B


现在,我们创建一个应用需要模块A
npm install,npm v3会安装模块A和它的依赖module B,扁平的/node_modules目录
在npm v2里是一种嵌套的方式:

然后,我们需要另一个模块C,C需要B,但是是另一个版本。

但是,B v1.0已经是顶级依赖,我们不能再将B v2.0作为顶级依赖。npm v3会默认的使用npm v2d的方式,将新的使用嵌套方式,模块B依赖会在需要它的模块之下,这个例子里,在模块C下:

在终端里,看起来是这样的:

使用npm ls可以列出依赖和他们的关系:

如果只想查看主要的依赖,使用:
npm ls --depth=0
上一篇 下一篇

猜你喜欢

热点阅读