摘要:
Node.js最重要的一個文件就是package.json,其中的配置參數決定了功能。例如下面就是一個例子
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "main.js",
"keywords": [
"test"
],
"author": "wade",
"license": "MIT",
"dependencies": {
"express": "^4.10.1"
},
"devDependencies": {
"jslint": "^0.6.5"
}
}
dependencies與devDependencies:
一個node package有兩種依賴,一種是dependencies,另一種是devDependencies,其中前者依賴的項是正常運行該包時所需要的依賴項,而后者則是開發的時候需要的依賴項,像一些進行單元測試之類的包。簡單來記就是下面的
"dependencies": {} //生產環境
"devDependencies": {}//開發環境
在package.json所在目錄執行npm install的時候,devDependencies里面的模塊也會被安裝的。如果我們只想安裝dependencies里面的包,可以執行
npm install --production
如果只安裝devDependencies,可以執行
npm install --dev
同理,使用npm install node_module –save自動更新dependencies字段值,使用npm install node_module –save-dev自動更新devDependencies字段值。
版本號:
每一個模塊后面對應的就是他的版本號,如"^4.10.1"。下面是幾個版本的表達式
表達式 | 版本范圍 |
>=1.2.7 | 大於等於1.2.7 |
>=1.2.7 <1.3.0 | 1.2.7,1.2.8,1.2.9 |
1.2.3 - 2.3.4 | >=1.2.3 <=2.3.4 |
1.2 - 2.3.4 | >=1.2.0 <=2.3.4 |
1.2.3 - 2.3 | >=1.2.3 <2.4.0 |
1.2.3 - 2 | >=1.2.3 <3.0.0 |
* | >=0.0.0 |
1.x(等價於1.X) | >=1.0.0 <2.0.0 |
1.2.x | >=1.2.0 <1.3.0 |
""(等價於*) | >=0.0.0 |
1(等價於1.x.x) | >=1.0.0 <2.0.0 |
1.2(等價於1.2.x) | >=1.2.0 <1.3.0 |
~1.2.3(>=1.2.3 <1.(2+1).0) | >=1.2.3 <1.3.0 |
~1.2(>=1.2.0 <1.(2+1).0) | >=1.2.0 <1.3.0 |
~1(>=1.0.0 <(1+1).0.0) | >=1.0.0 <2.0.0 |
~0.2.3(>=0.2.3 <0.(2+1).0) | >=0.2.3 <0.3.0 |
~0.2(>=0.2.0 <0.(2+1).0) | >=0.2.0 <0.3.0 |
~0(>=0.0.0 <(0+1).0.0) | >=0.0.0 <1.0.0 |
~1.2.3-beta.2 | >=1.2.3-beta.2 <1.3.0 |
^1.2.3 | >=1.2.3 <2.0.0 |
^0.2.3 | >=0.2.3 <0.3.0 |
^0.0.3 | >=0.0.3 <0.0.4 |
^1.2.3-beta.2 | >=1.2.3-beta.2 <2.0.0 |
^0.0.3-beta | >=0.0.3-beta <0.0.4 |
^1.2.x | >=1.2.0 <2.0.0 |
^0.0.x | >=0.0.0 <0.1.0 |
^0.0 | >=0.0.0 <0.1.0 |
^1.x | >=1.0.0 <2.0.0 |
^0.x | >=0.0.0 <1.0.0 |
參考文獻:
http://stackoverflow.com/questions/22343224/difference-between-tilde-and-caret-in-package-json
https://www.npmjs.org/doc/misc/npm-config.html#production