NPM install -save 和 -save-dev 傻傻分不清

轉(zhuǎn)載備注:
原文作者:暗夜余暉
原文出處: NPM install -save 和 -save-dev 傻傻分不清

回顧 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 install -save moduleName -save 的意思是將模塊安裝到項(xiàng)目目錄下,并在package文件的dependencies節(jié)點(diǎn)寫(xiě)入依賴(lài)。
npm install -save-dev moduleName -save-dev 的意思是將模塊安裝到項(xiàng)目目錄下,并在package文件的devDependencies節(jié)點(diǎn)寫(xiě)入依賴(lài)。

那么問(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ì)將模塊依賴(lài)寫(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ì)將模塊依賴(lài)寫(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ì)將模塊依賴(lài)寫(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ì)將模塊依賴(lài)寫(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 的形式安裝。

?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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