前言:之前一直不懂既然都是項目的依賴,為什么要分成兩個部分,devDependencies和dependencies,有什么區別?
安裝方式
我們在通過npm安裝插件或庫時,有三種方式:
- npm install packagename:將插件安裝到項目,但不寫入package.json(不推薦,這樣最終需要手動添加)
- npm install packagename --save:將插件安裝進項目,並寫入package.json的dependencies中
- npm install packagename --save-dev:將插件安裝進項目,並寫入package.json的devDependencies中
很明顯,--save表示保存到package.json中(默認為dependencies),-dev表示保存在package.json的devDependencies中
下載方式
拿到別人的項目時,會有package.json文件說明了項目依賴的插件,這時我們需要將包下載下來。
- npm install:默認會安裝兩種依賴,
- npm install --production:只安裝dependencies而不安裝devDependencies
區別
dev是develop的縮寫,即表示開發模式,所以:
devDependencies保存的依賴是只用於開發環境,不用於生產環境;
dependencies保存的依賴用於生產環境。
生產環境與開發環境
所謂開發環境,就是指開發階段,比如webpack,gulp這些工具,都只是在開發階段需要,一旦項目真正投入使用,便不再依賴這些插件,所以將其安裝在devDependencies即可;
生產環境,則表示項目真正投入使用時,此時仍然需要依賴的插件則需要安裝在dependencies中,比如vue,vue-router,jQuery這些,dependencies中沒有這些插件,項目真實使用時就會出錯。