devDependencies 與 Dependencies - daniel-qa/Vue GitHub Wiki
這個檔案就在專案根目錄,通常長得像這樣:
{
"name": "your-vue-app",
"version": "1.0.0",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
},
"dependencies": {
"vue": "^3.2.0",
"axios": "^1.1.0"
},
"devDependencies": {
"@vue/cli-service": "^5.0.0",
"eslint": "^8.0.0"
}
}
你看到 "devDependencies": { ... } 那一段,就是所有只在開發時用到的套件清單。
比方說上面有 @vue/cli-service、eslint,都是開發工具,不會被打包到最終的瀏覽器程式裡。
例如執行:
npm install -D @vue/cli-service
那麼 npm 會自動把 @vue/cli-service 加到 "devDependencies" 裡面。
如果你想手動新增,也可以在 package.json 裡頭直接編輯,只要把依賴填在 "devDependencies" 這段裡,之後再跑一次 npm install 就好。
真正在專案運行時,套件會跑到 node_modules
無論是放在 dependencies 還是 devDependencies,具體安裝下來的實體檔案都在 node_modules/ 資料夾。
差別在於 打包或部署 的時候,通常只會把 dependencies 裡的東西算進去,devDependencies 只留給「開發╱建構階段」使用。
dependencies:真正上線時需要的程式庫(像 Vue 本體、第三方 UI 元件、axios、lodash 等)。
devDependencies:只在開發、測試、打包時使用的工具(像 @vue/cli-service、lint、unit test、webpack 插件等等)。
這樣做的好處是:
部署包更精簡:打包只把必要的跑到瀏覽器的程式載入,體積更小。
團隊協作更清楚:同事一看到 devDependencies,就知道這些「只給開發用」的東西,不用擔心它會跑到 production。
devDependencies 就在你的 package.json 裡面。
安裝時只要 npm install -D <套件名>,它就乖乖地寫到那一塊。
真正的「實體」檔案都在 node_modules,但分類只影響開發 vs. 部署時是否被帶上線。