在使用npm安裝模塊時(shí)-g --save --save-dev有什么區(qū)別

原文地址

回顧 npm install 命令
最近在寫(xiě)Node程序的時(shí)候,突然對(duì) npm install 的-save和-save-dev 這兩個(gè)參數(shù)的使用比較混亂。其實(shí)博主在這之前對(duì)這兩個(gè)參數(shù)的理解也是模糊的,各種查資料和實(shí)踐后對(duì)它們之間的異同點(diǎn)略有理解。遂寫(xiě)下這篇文章避免自己忘記,同時(shí)也給node猿友一點(diǎn)指引。

我們?cè)谑褂?npm install 安裝模塊的模塊的時(shí)候 ,一般會(huì)使用下面這幾種命令形式:

npm install moduleName
 //# 安裝模塊到項(xiàng)目目錄下

npm install -g moduleName
// -g 的意思是將模塊安裝到全局,具體安裝到磁盤(pán)哪個(gè)位置,
//要看 npm config prefix 的位置,具體查看方法是在終端輸入npm config edit,
//在彈出的文檔中找到; prefix=C:\node,就是了。

npm install -save moduleName
// # --save 的意思是將模塊安裝到項(xiàng)目目錄下,并在package文件的dependencies節(jié)點(diǎn)寫(xiě)入依賴。


npm install -save-dev moduleName
// # --save-dev 的意思是將模塊安裝到項(xiàng)目目錄下,
//并在package文件的devDependencies節(jié)點(diǎn)寫(xiě)入依賴。


那么問(wèn)題來(lái)了,在項(xiàng)目中我們應(yīng)該使用四個(gè)命令中的哪個(gè)呢?這個(gè)就要視情況而定了。下面對(duì)這四個(gè)命令進(jìn)行對(duì)比,看完后你就不再這么問(wèn)了。

npm install moduleName 命令
1. 安裝模塊到項(xiàng)目node_modules目錄下。
2. 不會(huì)將模塊依賴寫(xiě)入devDependencies或dependencies 節(jié)點(diǎn)。
3. 運(yùn)行 npm install 初始化項(xiàng)目時(shí)不會(huì)下載模塊。

npm install -g moduleName 命令
1. 安裝模塊到全局,不會(huì)在項(xiàng)目node_modules目錄中保存模塊包。
2. 不會(huì)將模塊依賴寫(xiě)入devDependencies或dependencies 節(jié)點(diǎn)。
3. 運(yùn)行 npm install 初始化項(xiàng)目時(shí)不會(huì)下載模塊。

npm install -save moduleName 命令
1. 安裝模塊到項(xiàng)目node_modules目錄下。
2. 會(huì)將模塊依賴寫(xiě)入dependencies 節(jié)點(diǎn)。
3. 運(yùn)行 npm install 初始化項(xiàng)目時(shí),會(huì)將模塊下載到項(xiàng)目目錄下。
4. 運(yùn)行npm install --production或者注明NODE_ENV變量值為production時(shí),會(huì)自動(dòng)下載模塊到node_modules目錄中。

npm install -save-dev moduleName 命令
1. 安裝模塊到項(xiàng)目node_modules目錄下。
2. 會(huì)將模塊依賴寫(xiě)入devDependencies 節(jié)點(diǎn)。
3. 運(yùn)行 npm install 初始化項(xiàng)目時(shí),會(huì)將模塊下載到項(xiàng)目目錄下。
4. 運(yùn)行npm install --production或者注明NODE_ENV變量值為production時(shí),不會(huì)自動(dòng)下載模塊到node_modules目錄中。

總結(jié)
devDependencies 節(jié)點(diǎn)下的模塊是我們?cè)陂_(kāi)發(fā)時(shí)需要用的,比如項(xiàng)目中使用的 gulp ,壓縮css、js的模塊。這些模塊在我們的項(xiàng)目部署后是不需要的,所以我們可以使用 --save-dev 的形式安裝。像 express 這些模塊是項(xiàng)目運(yùn)行必備的,應(yīng)該安裝在 dependencies 節(jié)點(diǎn)下,所以我們應(yīng)該使用 --save 的形式安裝。

最大的區(qū)別就是,在生產(chǎn)環(huán)境,使用npm install --production安裝 dependencies 部分的模塊,
在開(kāi)發(fā)環(huán)境,npm i ,安裝所有devDependencies 和 dependencies里面的模塊

所以,在生產(chǎn)環(huán)境,就不需要安裝 gulp ,webpack 這樣的模塊,可以通過(guò)這種方法區(qū)分

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容