package.json文件可使你的npm包對於其餘人來講更容易管理和下載。發佈npm包也是必需要有該文件的。html
npm包的名字,必須是一個小寫的單詞,能夠包含連字符
-
和下劃線_
。發佈時必填。node
npm包的版本號,必須是
x.x.x
的形式,而且遵循語義化版本規則。發佈時必填。react
階段 | 規則 | 例子 |
---|---|---|
首次發版 | 從1.0.0開始 | 1.0.0 |
補丁發佈 | 遞增第三位數 | 1.0.8 |
次要版本 | 遞增第二位數,將第三位置位0 | 1.2.0 |
主要版本 | 遞增第一位數,將後倆位數置位0 | 3.0.0 |
注:版本號不存在十進制說法,當代碼一直處於同一階段更新時,版本號能夠一直增長、1.0.35
、1.12.5
都是能夠的。webpack
npm包的簡短描述,它會顯示在npm官方搜索的列表中。git
"description": "A Component Library for React"
複製代碼
npm包的關鍵詞,是一個字符串數組,能夠幫助其餘人在npm搜索列表中發現你的包。github
"keywords": [
"react",
"component",
"ui"
],
複製代碼
npm包項目主頁地址,能夠是託管平臺的地址。web
"homepage": "https://github.com/lhz960904/ouio#readme"
複製代碼
npm包問題反饋的地址,能夠是github的issue或者是郵箱地址。對於那些使用遇到問題的人頗有幫助。npm
"bugs": {
"url": "https://github.com/lhz960904/ouio/issues",
"email": "lihaozecq@gmail.com"
}
複製代碼
爲npm包指定許可證,以便其餘人知道他們被容許使用方式以及該npm包被施加的任何限制。json
npm包的做者,電子郵件和網站都是能夠的,如下倆種方式均可以。數組
"author": "lihaozecq <lihaozecq@gmail.com> (https://github.com/lhz960904)"
複製代碼
"author": {
"name" : "lihaozecq",
"email" : "lihaozecq@gmail.com",
"url" : "https://github.com/lhz960904"
}
複製代碼
npm包做爲依賴安裝時要包括的文件,格式是文件正則的數組,
["*"]
表明全部文件。也可使用npmignore
來忽略個別文件。files
字段優先級最大,不會被npmignore
和.gitignore
覆蓋。
如下文件老是被包含的,與配置無關
如下文件老是被忽略的,與配置無關
指定npm包的入口文件,例
"main": "src/index.js"
當require(name)
的時候實質是引入了改文件。
開發可執行文件時,bin字段能夠幫助你設置連接,不須要手動設置PATH。
"bin" : {
"oui" : "./cli.js"
}
複製代碼
當像上面這樣指定時,下載npm包,會自動連接cli.js
到use/local/bin/oui
,能夠直接在命令行執行oui
實質上執行的是npm包的cli,js
文件,須要在可執行文件頭部加上#!/usr/bin/env node
,不然會在沒有node的時候執行。當只有一個可執行文件且名字和包名同樣,能夠直接寫成字符串形式。
"bin": "./cli.js"
複製代碼
npm包託管的地方,對於想貢獻代碼的人是有幫助的。
"repository": {
"type": "git",
"url": "https://github.com/lhz960904/ouio"
}
複製代碼
可執行的命令。具體文檔
"scripts": {
"dev": "cross-env NODE_ENV=development node server.js",
"build": "cross-env NODE_ENV=production node server.js"
}
複製代碼
npm包所依賴的其餘npm包,當使用
npm install
下載該包時,dependencies
中指定的包都會一併被下載。指定版本範圍的規則以下:
"dependencies": {
"react": "^16.10.2",
"react-dom": "^16.10.2"
}
複製代碼
npm包所依賴的構建和測試相關的npm包,放置到
devDependencies
,當使用npm install
下載該包時,devDependencies
中指定的包不會一併被下載。
"devDependencies": {
"eslint": "^6.1.0",
"jest": "^24.8.0",
"webpack": "^4.0.0"
}
複製代碼
指定npm包與主npm包的兼容性,當開發插件時是須要的,例如開發React組件時,其組件是依賴於
react
、react-dom
npm包的,能夠在peerDependencies
指定須要的版本。
"peerDependencies": {
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
}
複製代碼
注:若是peerDependencies
指定的npm包沒有下載,npm版本1和2會直接下載。 npm3不會下載,會給出警告。
指定npm包可使用的Node版本
"engines" : {
"node" : ">=10.0.0"
}
複製代碼