-
Notifications
You must be signed in to change notification settings - Fork 0
What is difference between save and save dev?
-
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 的根目錄裡面。