dependencies 和 devDependencies 區(qū)別

當(dāng)我們項(xiàng)目需要下載一個(gè)模塊的時(shí)候,我們安裝npm包(在項(xiàng)目目錄下面npm install module_name)的時(shí)候,很多時(shí)候我們會在后面加上–save-dev 或 –save。這兩個(gè)參數(shù)代表什么呢?

初識

相信很多人都會回答:

npm install module-name -save 自動把模塊和版本號添加到dependencies部分
npm install module-name -save-dev 自動把模塊和版本號添加到devdependencies部分

dependencies是什么呢? 生產(chǎn)環(huán)境。
devdependencies是什么呢? 開發(fā)環(huán)境。

網(wǎng)上也可以查到很多資料,大概回答意思是,我們搭建一個(gè)webpack+react+es6的項(xiàng)目,像webpack babel這種負(fù)責(zé)打包編譯的,我們就應(yīng)該裝在開發(fā)環(huán)境,像react之類的裝在生產(chǎn)環(huán)境。
可是為什么呢?
我們不能告訴我們這樣做,我們就只這樣做,我們要知之其所以然呀。
恩。我試著吧react放進(jìn)了dependencies,打包出來的文件依然可以運(yùn)行,并沒有什么問題。
why ???難道文檔只是建議而已嗎???

實(shí)質(zhì)區(qū)別

如果我們只是單純的做項(xiàng)目,那么我們可簡單地認(rèn)為生產(chǎn)環(huán)境和開發(fā)環(huán)境做為一種友善的提示,實(shí)質(zhì)沒有什么區(qū)別;但是,如果在發(fā)布npm包的時(shí)候,兩種環(huán)境安裝方式是有很大區(qū)別的?。?!

假設(shè)有以下兩個(gè)模塊:
模塊A
- devDependencies
  模塊B
- dependencies
  模塊C
模塊D
- devDependencies
  模塊E
- dependencies
  模塊A
npm install D的時(shí)候, 下載的模塊為:
- D
- A
- C
當(dāng)我們下載了模塊D的源碼,并且在根目錄下npm install, 下載的模塊為:
- A
- C
- E

所以,在發(fā)布npm包的時(shí)候,本身dependencies下的模塊會作為依賴,一起被下載;devDependencies下面的模塊就不會自動下載了;但對于項(xiàng)目而言,npm install 會自動下載devDependencies和dependencies下面的模塊。

本篇博客內(nèi)容來自:https://guxinyan.github.io/2017/11/02/%E5%8C%85%E5%BA%94%E8%AF%A5%E6%94%BE%E5%9C%A8devDependencies%E8%BF%98%E6%98%AFdependencies/

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

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

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