安裝npm包應該放在devDependencies還是dependencies

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


初識

相信很多人都會回答:

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

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


dependencies是什么呢?生產環境。

devdependencies是什么呢? 開發環境。


網上也可以查到很多資料,大概回答意思是,我們搭建一個webpack+react+es6的項目,像webpack babel這種負責打包編譯的,我們就應該裝在開發環境,像react之類的裝在生產環境。

可是為什么呢?

我們不能告訴我們這樣做,我們就只這樣做,我們要知之其所以然呀。

恩。我試著吧react放進了dependencies,打包出來的文件依然可以運行,并沒有什么問題。

why ???難道文檔只是建議而已嗎???


實質區別

如果我們只是單純的做項目,那么我們可簡單地認為生產環境和開發環境做為一種友善的提示,實質沒有什么區別;但是

如果在發布npm包的時候,兩種環境安裝方式是有很大區別的!!!


假設有以下幾個模塊:

image.png

npm install D的時候, 下載的模塊為:

D A C

當我們下載了模塊D的源碼,并且在根目錄下npm install, 下載的模塊為:

A C E

所以,

在發布npm包的時候,本身dependencies下的模塊會作為依賴,一起被下載;devDependencies下面的模塊就不會自動下載了;

但對于項目而言,npm install 會自動下載devDependencies和dependencies下面的模塊。


轉載請說明出處:原文鏈接 http://www.yixcsu.live/qdjs/214

相關閱讀:

AntDesign Of Angular之響應式柵格尺寸:nzXs、nzSm、nzMd、nzLg、nzXl、nzXXl

Angular響應式表單校驗及提交主動觸發所有校驗

Angular 報錯 Can't bind to 'formGroup' since it isn't a known property of 'form'

Angular Ionic項目build打包后發布到IIS刷新報錯404解決方法

大乐透专家预测 十四岁女生怎么赚钱 好运彩票首页 大学生靠谱的赚钱方式 10月份做什么赚钱 让分胜负 dnf普通深渊那个图好赚钱 捕鱼积液怎么赚钱 球探篮球比分网即时比分直播 一点号能赚钱吗 外卖怎么干赚钱 竞彩比分直播500n 湖北十一选五 178棋牌龙王捕鱼 看新鲜赚钱的app 东北四人麻将免费下载 华体足球即时赔率