NPM全局安裝與本地安裝的區(qū)別詳析
1. 全局安裝和本地安裝都安裝到了哪?
官方文檔:使用 -g 安裝的模塊為全局安裝,否則為本地安裝。
使用 -g 安裝全局模塊
$ npm install express -g
不使用 -g 安裝本地模塊
$ npm install path
那么問(wèn)題來(lái)了,全局模塊和本地模塊都安裝到哪了?
全局模塊安裝路徑
// 輸入指令查詢?nèi)帜K安裝路徑 $ npm list -g --depth=0
本地模塊安裝路徑
本地模塊安裝在當(dāng)前目錄下的 node_modules 目錄下。
以上圖為例:安裝本地模塊的當(dāng)前目錄是 D:\code,那么在該目錄下會(huì)自動(dòng)創(chuàng)建 node_modules 目錄(如果之前有這個(gè)目錄就不會(huì)創(chuàng)建了),在 node_modules 目錄下就可以找到剛才安裝的 path 模塊了。
2. 全局安裝和本地安裝的包有啥區(qū)別?
我們將一些包全局安裝,另一些包本地安裝,二者有什么區(qū)別呢?
官方的解釋是:
- 全局安裝的包直接安裝到計(jì)算機(jī)中,只需安裝一次,以后在計(jì)算機(jī)的任何位置都可以使用這個(gè)包;
- 看本地安裝包安裝到哪兒可以知道本地包是安裝在當(dāng)前目錄下的,也就是說(shuō),只有在當(dāng)前目錄下才可以使用安裝的本地包。比如上面貼的圖片中安裝的本地包 path,只有在 D:\code 目錄下才能使用這個(gè)包,換做其它任何目錄是不能使用它。
總結(jié):全局安裝安裝一次重復(fù)使用,本地安裝使用什么安裝什么。
3. 哪些包我應(yīng)該全局安裝,哪些包又應(yīng)該本地安裝?
既然全局安裝安裝一次就可以重復(fù)使用,那么干嘛不是所有包都使用全局安裝呢?
回答上面那個(gè)問(wèn)題之前,先來(lái)解釋下另一個(gè)問(wèn)題:哪些包應(yīng)該全局安裝?
約定俗成的,對(duì)于那些提供命令行工具的包進(jìn)行全局安裝,其它包本地安裝。
舉例說(shuō)明:
$ npm install dva-cli -g
使用命令行工具輸入指令 dva new 創(chuàng)建 dva 腳手架
$ dva new dva-demo
像這種能提供指令的包通常進(jìn)行全局安裝
安裝 eslint 包
$ npm install eslint -g
使用指令 --init 設(shè)置一個(gè)配置文件
$ eslint --init
像這種能提供指令的包通常進(jìn)行全局安裝
總結(jié):
不用管上面兩個(gè)案例的指令具體是什么,只要提供指令的包都建議使用全局安裝;其它包打包是提供一個(gè)功能,用于解決某一需求,建議安裝成本地包。
你可能還會(huì)困惑,我剛開(kāi)始學(xué)習(xí) npm 還不知道哪些包是否提供指令,應(yīng)該怎么辦?沒(méi)有關(guān)系,不知道的全部安裝成本地包,在實(shí)踐中如果發(fā)現(xiàn)這個(gè)包提供指令,也可以使用后面章節(jié)會(huì)提到的卸載包,再重新進(jìn)行全局安裝即可。
到此這篇關(guān)于NPM全局安裝與本地安裝區(qū)別的文章就介紹到這了,更多相關(guān)NPM全局安裝與本地安裝區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序,本系列文章將一步一步創(chuàng)建一個(gè)完整的nodejs服務(wù)器,需要的朋友可以參考下2014-12-12nodejs中sleep功能實(shí)現(xiàn)暫停幾秒的方法
本篇文章主要介紹了nodejs中sleep功能實(shí)現(xiàn)暫停幾秒的方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07一文學(xué)會(huì)搭建HTTP服務(wù)器調(diào)用DLL庫(kù)
這篇文章主要為大家介紹了一文學(xué)會(huì)搭建HTTP服務(wù)器調(diào)用DLL庫(kù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06node.js+postman實(shí)現(xiàn)模擬HTTP服務(wù)器與客戶端交互
本文主要介紹了node.js+postman實(shí)現(xiàn)模擬HTTP服務(wù)器與客戶端交互,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)詳解
最近在學(xué)習(xí)node.js爬蟲(chóng),由于 nodejs 強(qiáng)大的異步特性,讓我們可以輕松以異步高并發(fā)去爬取網(wǎng)站,下面這篇文章主要給大家介紹了關(guān)于利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)的相關(guān)資料,需要的朋友可以參考下。2017-07-07nodejs 搭建簡(jiǎn)易服務(wù)器的圖文教程(推薦)
下面小編就為大家?guī)?lái)一篇nodejs 搭建簡(jiǎn)易服務(wù)器的圖文教程(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)
本文主要介紹了Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05