回顧 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ū)分