1. 程式人生 > >npm install -save 和 -save-dev的區別

npm install -save 和 -save-dev的區別

回顧 npm install 命令

最近在寫Node程式的時候,突然對 npm install 的-save和-save-dev 這兩個引數的使用比較混亂。其實博主在這之前對這兩個引數的理解也是模糊的,各種查資料和實踐後對它們之間的異同點略有理解。遂寫下這篇文章避免自己忘記,同時也給node猿友一點指引。

我們在使用 npm install 安裝模組的模組的時候 ,一般會使用下面這幾種命令形式:

1234567npm install moduleName # 安裝模組到專案目錄下npm install -g moduleName # -g 的意思是將模組安裝到全域性,具體安裝到磁碟哪個位置,要看 npm config prefix 的位置。
npm install -save moduleName # -save 的意思是將模組安裝到專案目錄下,並在package檔案的dependencies節點寫入依賴。npm install -save-dev moduleName # -save-dev 的意思是將模組安裝到專案目錄下,並在package檔案的devDependencies節點寫入依賴。

那麼問題來了,在專案中我們應該使用四個命令中的哪個呢?這個就要視情況而定了。下面對這四個命令進行對比,看完後你就不再這麼問了。

npm install moduleName 命令

1. 安裝模組到專案node_modules目錄下。
2. 不會將模組依賴寫入devDependencies或dependencies 節點。
3. 執行 npm install 初始化專案時不會下載模組。

npm install -g moduleName 命令

1. 安裝模組到全域性,不會在專案node_modules目錄中儲存模組包。
2. 不會將模組依賴寫入devDependencies或dependencies 節點。
3. 執行 npm install 初始化專案時不會下載模組。

npm install -save moduleName 命令

1. 安裝模組到專案node_modules目錄下。
2. 會將模組依賴寫入dependencies 節點。
3. 執行 npm install 初始化專案時,會將模組下載到專案目錄下。
4. 執行npm install --production或者註明NODE_ENV變數值為production時,

自動下載模組到node_modules目錄中。

npm install -save-dev moduleName 命令

1. 安裝模組到專案node_modules目錄下。
2. 會將模組依賴寫入devDependencies 節點。
3. 執行 npm install 初始化專案時,會將模組下載到專案目錄下。
4. 執行npm install --production或者註明NODE_ENV變數值為production時,不會自動下載模組到node_modules目錄中。

總結

devDependencies 節點下的模組是我們在開發時需要用的,比如專案中使用的 gulp ,壓縮css、js的模組。這些模組在我們的專案部署後是不需要的,所以我們可以使用 -save-dev 的形式安裝。像 express 這些模組是專案執行必備的,應該安裝在 dependencies 節點下,所以我們應該使用 -save 的形式安裝。

原文地址: