回顧 npm install 命令
最近在寫Node程序的時候瓶堕,突然對 npm install 的-save和-save-dev 這兩個參數(shù)的使用比較混亂共螺。其實博主在這之前對這兩個參數(shù)的理解也是模糊的狂丝,各種查資料和實踐后對它們之間的異同點略有理解。遂寫下這篇文章避免自己忘記惯吕,同時也給node猿友一點指引倒庵。
我們在使用 npm install 安裝模塊的模塊的時候 ,一般會使用下面這幾種命令形式:
npm install moduleName # 安裝模塊到項目目錄下
npm install -g moduleName # -g 的意思是將模塊安裝到全局因块,具體安裝到磁盤哪個位置橘原,要看 npm config prefix 的位置。
npm install -save moduleName # -save 的意思是將模塊安裝到項目目錄下涡上,并在package文件的dependencies節(jié)點寫入依賴趾断。
npm install -save-dev moduleName # -save-dev 的意思是將模塊安裝到項目目錄下,并在package文件的devDependencies節(jié)點寫入依賴吩愧。
那么問題來了芋酌,在項目中我們應(yīng)該使用四個命令中的哪個呢?這個就要視情況而定了雁佳。下面對這四個命令進行對比脐帝,看完后你就不再這么問了。
npm install moduleName 命令
安裝模塊到項目node_modules目錄下糖权。
不會將模塊依賴寫入devDependencies或dependencies 節(jié)點堵腹。
運行 npm install 初始化項目時不會下載模塊。
npm install -g moduleName 命令
- 安裝模塊到全局星澳,不會在項目node_modules目錄中保存模塊包疚顷。
- 不會將模塊依賴寫入devDependencies或dependencies 節(jié)點。
- 運行 npm install 初始化項目時不會下載模塊禁偎。
npm install -save moduleName 命令
- 安裝模塊到項目node_modules目錄下腿堤。
- 會將模塊依賴寫入dependencies 節(jié)點。
- 運行 npm install 初始化項目時届垫,會將模塊下載到項目目錄下释液。
- 運行npm install --production或者注明NODE_ENV變量值為production時全释,會自動下載模塊到node_modules目錄中装处。
npm install -save-dev moduleName 命令
- 安裝模塊到項目node_modules目錄下。
- 會將模塊依賴寫入devDependencies 節(jié)點。
- 運行 npm install 初始化項目時妄迁,會將模塊下載到項目目錄下寝蹈。
- 運行npm install --production或者注明NODE_ENV變量值為production時,不會自動下載模塊到node_modules目錄中登淘。
總結(jié)
devDependencies 節(jié)點下的模塊是我們在開發(fā)時需要用的箫老,比如項目中使用的 gulp ,壓縮css黔州、js的模塊耍鬓。這些模塊在我們的項目部署后是不需要的,所以我們可以使用 -save-dev 的形式安裝流妻。像 express 這些模塊是項目運行必備的牲蜀,應(yīng)該安裝在 dependencies 節(jié)點下,所以我們應(yīng)該使用 -save 的形式安裝绅这。