依賴(lài)樹(shù)表面的邏輯結(jié)構(gòu)與依賴(lài)樹(shù)真實(shí)的物理結(jié)構(gòu)

依賴(lài)樹(shù)表面的邏輯結(jié)構(gòu)與依賴(lài)樹(shù)真實(shí)的物理結(jié)構(gòu)并不一定相同!

這里要先提到兩個(gè)命令:tree -d(linux)和npm ls(npm)

在一個(gè)npm項(xiàng)目下:

tree -d命令以樹(shù)狀圖的方式列出一個(gè)項(xiàng)目下所有依賴(lài)的物理結(jié)構(gòu)

npm ls命令以樹(shù)狀圖的方式列出一個(gè)項(xiàng)目下所有依賴(lài)的邏輯結(jié)構(gòu)

 

以官方文檔為例子:

項(xiàng)目example1有兩個(gè)依賴(lài)模塊:mod-a模塊和mod-c模塊;

mod-a模塊有一個(gè)依賴(lài)模塊mod-b@1.0.0模塊

mod-c模塊有一個(gè)依賴(lài)模塊mod-b@2.0.0模塊

tree -d 和npm ls運(yùn)行結(jié)果如下:(注意npm版本為npm3而非npm2)

 Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

 

先看看下面那個(gè)紅框的結(jié)果,這應(yīng)該是“最符合我們理解”的依賴(lài)樹(shù),首先項(xiàng)目下形成了一級(jí)依賴(lài)——mod-a模塊和mod-b模塊,然后以這兩個(gè)模塊為父模塊再追加二級(jí)依賴(lài)模塊mod-b@1.0.0和<