package.json 入門
npm在package.json檔案中管理專案的依賴項以及專案的元資料。 node執行js中require(es6 import)的時候,也會根據package.json中的依賴項查詢。
2. package.json 檔案解析
2.1 作用
- 描述了你的專案依賴哪些包,並指明依賴包的版本
- 更好地與開發者分享,便於重複使用
2.2 欄位說明
2.2.1 文件連結package.json
2.2.2 必選欄位
- name 全部小寫,不支援空格
- version 版本號
2.2.3 可選欄位
- description 描述資訊,有助於npm search
- keywords 關鍵字,有助於npm search
- main 入口檔案
- homepage 帶協議字首的URL,例如www.xxx.com
- bugs 提供郵箱或url連結追蹤專案的問題資訊,例如
{ "url":"http://github.com/issues, "email" :"[email protected]" } 複製程式碼
- repository 當前的專案遠端倉庫,便於使用者進行貢獻,例如
"repository" : { "type" : "git", "url" : "http://github.com/npm/npm.git" } 複製程式碼
- author 使用者,一個人,例如
{ "name" : "Barney Rubble, "email" : "[email protected]", "url" : "http://barnyrubble.tumblr.com/" } 複製程式碼
簡寫為
"Barney Rubble <[email protected]>(http://barnyrubble.tumblr.com/)" 複製程式碼
- contributors 使用者群組
- dependencies 專案的依賴安裝包,指定版本,也可以是一個git url
- devDependencies 基本同於dependencies,但是如果只需要下載使用某些模組,而不下載這些模組的測試和文件框架,放在這個下面比較不錯
3. 依賴包的版本號
3.1 基本的匹配模式
- version 完全匹配
- >version 大於這個版本
- >=version 大於或等於這個版本
- <version 小於這個版本
- <=version 小於等於這個版本
- version1 - version2,等價於 >=version1 && <=version2.
- range1 || range2 滿足任意一個即可
- http://... Unix系統下使用的tarball的URL。
- git... Git地址
- latest 保持最新版本
上述列舉條目與下面例子一一對應
{ "dependencies" : { "boo" : "2.0.1", "bar" : ">1.0.2", "bar2" : ">=1.0.2", "baz" : "<2.3.4", "baz2" : "<=2.3.4", "foo" : "1.0.0 - 2.9999.9999", "qux" : "<1.0.0 || >=2.3.1 <2.4.5“, "asd" : "http://asdf.com/asdf.tar.gz", 'git-smt': "git address", "lat" : "latest", } } 複製程式碼
3.2 版本號
3.2.1 規範
- 補丁版本:解決了 bug 或者一些較小的更改,增加最後一位數字,比如 1.0.1 --> 1.0.2
- 小版本:增加了新特性,同時不會影響之前的版本,增加中間一位數字,比如 1.0.2 --> 1.1.2
- 大版本:大改版,無法相容之前的,增加第一位數字,比如 1.1.2 --> 2.1.2
3.2.2 更新程度
-
如果只接受補丁版本的更新(也就是最後一位的改變),就可以這麼寫:
- 1.0
- 1.0.x
- ~1.0.4
-
如果接受小版本的更新(第二位的改變,接受補丁版本的改變),就可以這麼寫:
- 1.x
- ^1.0.4
- 如果可以接受大版本的更新(自然接受小版本和補丁版本的改變),就可以這麼寫: