What is difference between save and save dev? - TerryLee7788/JS_test GitHub Wiki
package.json
package.json通常位於一個 Node.js project 的根目錄下,package.json檔案裡面通常載名了你當前的project 所需要的各種數據,- 你可以給當前的project 一個名稱 (name),
- project 特定分配的版本 (version),
- 同時也包含了你想要如何描述當前專案的文案內容 (description),
- 提供資訊給
npm處理project tasks 之間的依賴關係 (dependencies)
假設你有一個 package.json 是長這個樣子
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"express": "^4.13.1",
"express3-handlebars": "^0.5.2"
},
"devDependencies": {
"chai": "^3.0.0",
"mocha": "^2.2.5",
"zombie": "^4.0.13"
}
}
##Questions:
####- What is dependencies?
當你執行 npm install [package_name] --save,
npm 會自動幫你的 package.json 新增一個 key 叫做 dependencies,
並加入你剛才所輸入的 [package_name], 它就會變成:
dependencies: {
[package_name]: version
}
做這樣目地的用途是處理好當前 project tasks 之間的依賴關係,
之後假設有新的開發人員要加入此專案,
只要下載 package.json, 以及跑 npm install 即可安裝好專案需要的 tasks, 並開始進行專案
####- What is devDependencies? And what is difference between dependencies and devDependencies?
dependencies is from npm install [package_name] --save
devDependencies is from npm install [package_name] --save-dev
來源的差別只在於 你在 npm install 時, 所輸入的 flag 不同 (--save and --save-dev),
但是這兩者的用途差別在於
devDependencies 這個主要是拿來放 還在開發中 所使用的 tasks,
但是因為如果只跑 npm install 的話
dependencies 跟 devDependencies 所包含的tasks 都會被下載到你的project 跟目錄裡面
如果你不想下載專案正在開發中所使用的 tasks 記得加個 flag --producation,
command line 執行 npm install --production
devDependencies 所指定的tasks 就不會被安裝到你的node.js project 的根目錄裡面。