在通過npm安裝依賴的時候吁系,有兩種方式:npm install XXX --save-dev(下文簡稱--save-dev)與npm install XXX --save(下文簡稱--save)柱衔,它們都可以將依賴信息寫入到package.json文件內(nèi)。那他們之間有什么區(qū)別呢砸逊?下面我們進行進一步的分析。
區(qū)別1:通過--save-dev方法安裝的依賴,會將該依賴信息加載到package.json的"devDependencies"鍵下变擒,而通過--save方法安裝的依賴則會將信息加載到pacage.json的"dependencies"鍵下分俯。package.json代碼如下:
...
"devDependencies": {?
? ? ...
?????"babel": "^6.23.0",?
? ? ?"style-loader": "^0.16.1",?
?????"vue-loader": "^11.3.4",?
?????"vue-style-loader": "^2.0.5",
? ? ...
},
"dependencies": {?
? ? ...
?????"vue": "^2.2.6"
? ? ...}
...
代碼所表現(xiàn)的區(qū)別1就是:vue通過--save方式添加肾筐,babel、style-loader缸剪、vue-loader吗铐、vue-style-loader通過--save-dev方式添加。
除了區(qū)別1外杏节,這兩種方式還有區(qū)別2抓歼。
區(qū)別2:npm官方解釋:devDependencies是開發(fā)(開發(fā)環(huán)境)時的依賴,dependencies是運行(生產(chǎn)環(huán)境)時的依賴拢锹。這就是說谣妻,devDependencies下的依賴只是在開發(fā)時起作用,運行時并不需要這些依賴卒稳,比如:html-webpack-plugin(生成html文件)蹋半、extract-text-webpack-plugin(提取樣式到單獨的css文件)等。與之對應(yīng)的充坑,dependencies下的依賴不僅在開發(fā)時需要减江,在發(fā)布后仍然會使用的到,比如:vue捻爷,vue-router辈灼,vuex,jQuery等也榄,如果通過--save-dev方式安裝這些依賴巡莹,那么在打包后運行會出現(xiàn)錯誤司志。
額外說明:當我們在github上clone一個項目的時候,README.md通常會有安裝說明降宅,一般的方式是通過npm install直接安裝需要的所有依賴(包括devDependencies和dependencies)骂远,之后項目才可以正常啟動。