4.1 分清全局安裝與本地安裝

2023-09-07 14:48 更新
剛學(xué)習(xí) npm 的時候,官方教程在介紹 -g 參數(shù)時是這么描述的:“加上 -g 參數(shù)是全局安裝,否則本地安裝”。這種說話說一半的感覺真的很讓人討厭,什么是全局什么是本地完全沒有介紹。以至于后來很長一段時間才搞明白這個概念。雖然是個小知識點,但我覺得有必要在學(xué)習(xí)模塊安裝之前先介紹一下。

1. 全局安裝和本地安裝都安裝到了哪?

官方文檔:使用 ?-g? 安裝的模塊為全局安裝,否則為本地安裝。

使用? -g? 安裝全局模塊

$ npm install express -g

不使用 ?-g? 安裝本地模塊

$ npm install path

那么問題來了,全局模塊和本地模塊都安裝到哪了?

  • 全局模塊安裝路徑
// 輸入指令查詢?nèi)帜K安裝路徑
$ npm list -g --depth=0

1

查詢?nèi)帜K安裝路徑

  • 本地模塊安裝路徑

2

本地模塊安裝路徑

本地模塊安裝在當(dāng)前目錄下的 ?node_modules ?目錄下。

以上圖為例:安裝本地模塊的當(dāng)前目錄是 D:\code,那么在該目錄下會自動創(chuàng)建 ?node_modules ?目錄(如果之前有這個目錄就不會創(chuàng)建了),在 ?node_modules ?目錄下就可以找到剛才安裝的 ?path ?模塊了。

2. 全局安裝和本地安裝的包有啥區(qū)別?

我們將一些包全局安裝,另一些包本地安裝,二者有什么區(qū)別呢?

官方的解釋是:

  • 全局安裝的包直接安裝到計算機中,只需安裝一次,以后在計算機的任何位置都可以使用這個包;
  • 看本地安裝包安裝到哪兒可以知道本地包是安裝在當(dāng)前目錄下的,也就是說,只有在當(dāng)前目錄下才可以使用安裝的本地包。比如上面貼的圖片中安裝的本地包 path,只有在 D:\code 目錄下才能使用這個包,換做其它任何目錄是不能使用它。

全局安裝與本地安裝

總結(jié):全局安裝安裝一次重復(fù)使用,本地安裝使用什么安裝什么。

3. 哪些包我應(yīng)該全局安裝,哪些包又應(yīng)該本地安裝?

既然全局安裝安裝一次就可以重復(fù)使用,那么干嘛不是所有包都使用全局安裝呢?

回答上面那個問題之前,先來解釋下另一個問題:哪些包應(yīng)該全局安裝?

約定俗成的,對于那些提供命令行工具的包進行全局安裝,其它包本地安裝。

舉例說明:

  • 安裝 ?dva-cli ?包
$ npm install dva-cli -g

使用命令行工具輸入指令 ?dva new? 創(chuàng)建 dva 腳手架

$ dva new dva-demo

像這種能提供指令的包通常進行全局安裝

  • 安裝? eslint? 包
$ npm install eslint -g

使用指令? --init? 設(shè)置一個配置文件

$ eslint --init

像這種能提供指令的包通常進行全局安裝

總結(jié):不用管上面兩個案例的指令具體是什么,只要提供指令的包都建議使用全局安裝;其它包打包是提供一個功能,用于解決某一需求,建議安裝成本地包。

你可能還會困惑,我剛開始學(xué)習(xí) npm 還不知道哪些包是否提供指令,應(yīng)該怎么辦?沒有關(guān)系,不知道的全部安裝成本地包,在實踐中如果發(fā)現(xiàn)這個包提供指令,也可以使用后面章節(jié)會提到的卸載包,再重新進行全局安裝即可。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號