npm的依賴樹查詢:原理都是查詢文件夾node_modules的結構。比如mac的node_modules位置在/usr/local/lib下。具體項目的node_modules位置位於項目根目錄下。
1、查看npmjs上某個插件的依賴情況
2、查看某個項目的插件依賴情況
3、查看本地計算機上全局安裝的插件依賴情況
4、
查看npmjs網站上的包的依賴,如下
可以使用npm-remote-ls
。全局安裝:
npm install -g npm-remote-ls
查看插件bower的依賴關系:
npm-remote-ls bower


也可以使用網站:http://npm.anvaka.com/#/view/2d/td-ui查看
查看本地某個項目的依賴樹:
進入本地項目下,然后使用命令npm ll ,只會打印本地項目安裝的依賴,不會打印未安裝的依賴,也不會打印全局安裝的依賴。也可以使用命令npm list/ls; npm list --depth=1設置樹的深度。路徑顯式的是
查看全局安裝的所有插件依賴樹情況:npm ls -g --depth=1 。全局的插件安裝默認目錄是:/usr/local/lib
查看全局安裝的某個插件依賴情況:npm ls -g --depth=1 。全局的插件安裝默認目錄是:/usr/local/lib
關於依賴冗余:目前npm6是版本6.3.0
有文章稱,當項目依賴一個插件的多個版本時,會全部引進進來,然后分布放在依賴它們的項目下的node_modules下面。如果多次依賴的版本相同時,則放在頂級的node_modules下面。
npm3
在安裝包時會采用扁平化處理,包以及包依賴的其他模塊將會以同層級的方式安裝在包使用者的node_modules下 ,如果版本有沖突,才會采用npm2
的嵌套方式安裝在各個包下。
在npm3
下,peerDependencies
下模塊不會自動安裝,需要模塊使用者在本地目錄手動安裝,如果沒安裝會發出警告
peerDependencies
的作用是表面某個插件必須依賴另一個插件的某個版本。
npm3把所有依賴模塊路徑拍扁了(工程目錄下的node_modules
出現了很多package.json
中沒有聲明的模塊),解決了windows下路徑名過長的問題,更使得公共依賴被充分共享。但如果多個模塊依賴了同一個模塊的不同版本,后安裝的模塊,為了不和別人沖突,就只能將這個依賴安裝在自己的node_modules
下
http://cloudstone.xin/2016/10/23/npm-install%E9%97%AE%E9%A2%98%E4%B9%8B%E4%BE%9D%E8%B5%96%E5%86%97%E4%BD%99/