npm 包管理工具-分清全局安裝與本地安裝
四渣玲、npm 包管理工具
4.1 分清全局安裝與本地安裝
剛學習 npm 的時候揍很,官方教程在介紹 -g 參數(shù)時是這么描述的:“加上 -g
參數(shù)是全局安裝,否則本地安裝”阅仔。這種說話說一半的感覺真的很讓人討厭奋早,什么是全局什么是本地完全沒有介紹兜粘。以至于后來很長一段時間才搞明白這個概念绞绒。雖然是個小知識點,但我覺得有必要在學習模塊安裝之前先介紹一下耕腾。
1. 全局安裝和本地安裝都安裝到了哪见剩?
官方文檔:使用 -g 安裝的模塊為全局安裝,否則為本地安裝扫俺。
使用 -g 安裝全局模塊
$ npm install express -g
不使用 -g 安裝本地模塊
$ npm install path
那么問題來了苍苞,全局模塊和本地模塊都安裝到哪了?
全局模塊安裝路徑
// 輸入指令查詢全局模塊安裝路徑$ npmlist-g --depth=0
查詢全局模塊安裝路徑
本地模塊安裝路徑
本地模塊安裝路徑
本地模塊安裝在當前目錄下的 node_modules 目錄下狼纬。
以上圖為例:安裝本地模塊的當前目錄是 D:\code羹呵,那么在該目錄下會自動創(chuàng)建 node_modules 目錄(如果之前有這個目錄就不會創(chuàng)建了),在 node_modules 目錄下就可以找到剛才安裝的 path 模塊了畸颅。
2. 全局安裝和本地安裝的包有啥區(qū)別担巩?
我們將一些包全局安裝方援,另一些包本地安裝没炒,二者有什么區(qū)別呢?
官方的解釋是:
全局安裝的包直接安裝到計算機中,只需安裝一次送火,以后在計算機的任何位置都可以使用這個包拳话;
看本地安裝包安裝到哪兒可以知道本地包是安裝在當前目錄下的,也就是說种吸,只有在當前目錄下才可以使用安裝的本地包弃衍。比如上面貼的圖片中安裝的本地包 path,只有在 D:\code 目錄下才能使用這個包坚俗,換做其它任何目錄是不能使用它镜盯。
全局安裝與本地安裝
總結:全局安裝安裝一次重復使用,本地安裝使用什么安裝什么猖败。
3. 哪些包我應該全局安裝速缆,哪些包又應該本地安裝?
既然全局安裝安裝一次就可以重復使用恩闻,那么干嘛不是所有包都使用全局安裝呢艺糜?
回答上面那個問題之前,先來解釋下另一個問題:哪些包應該全局安裝幢尚?
約定俗成的破停,對于那些提供命令行工具的包進行全局安裝,其它包本地安裝尉剩。
舉例說明:
安裝 dva-cli 包
$ npm install dva-cli -g
使用命令行工具輸入指令 dva new 創(chuàng)建 dva 腳手架
$ dvanewdva-demo
像這種能提供指令的包通常進行全局安裝
安裝 eslint 包
$ npm install eslint -g
使用指令 --init 設置一個配置文件
$ eslint --init
像這種能提供指令的包通常進行全局安裝
總結:不用管上面兩個案例的指令具體是什么真慢,只要提供指令的包都建議使用全局安裝;其它包打包是提供一個功能理茎,用于解決某一需求晤碘,建議安裝成本地包。
你可能還會困惑功蜓,我剛開始學習 npm 還不知道哪些包是否提供指令园爷,應該怎么辦?沒有關系式撼,不知道的全部安裝成本地包童社,在實踐中如果發(fā)現(xiàn)這個包提供指令,也可以使用后面章節(jié)會提到的卸載包著隆,再重新進行全局安裝即可扰楼。