package.json 詳解

package.json 可以通過 npm init 來交互式地創(chuàng)建馏慨。
package.json 中可寫的內(nèi)容非常多重慢,以下講解字段的內(nèi)容。

name 字段 和 version 字段

name 和 version 字段是 package.json 文件中最重要的字段。這是必須的字段石抡,如果你的 npm 包沒有指定這兩個字段轻黑,將無法被安裝糊肤。name 和 version 字段被假定組合成一個唯一的標(biāo)識符。包內(nèi)容的更改和包版本的更改是同步的氓鄙。

因此馆揉,一般我們認(rèn)為一個最簡單的 package.json 文件如下所示:

{
  "name" : "xxx",
  "version" : "0.0.1",
}

另外,對于 name 字段的命名有如下規(guī)則限制:

  1. name 的長度必須小于等于214個字符抖拦。
  2. name 不能以"."(點)或者"_"(下劃線)開頭升酣。
  3. name 中不能包含大寫字母。
  4. name 最終將被用作URL的一部分态罪、命令行的參數(shù)和文件夾名拗踢。因此,name 不能含有非URL安全的字符向臀。

scripts 字段

scripts 指定了運行腳本命令的 npm 命令行縮寫巢墅,比如 start 指定了運行 npm run start 時,所要執(zhí)行的命令券膀。

下面的設(shè)置指定了 npm run dev君纫、npm run dist、npm run pub芹彬、npm run start蓄髓、npm run test 時,所要執(zhí)行的命令舒帮。

"scripts": {
   "dev": "anyproxy --port 8080 --rule proxy.js & npm run start",
   "dist": "cross-env NODE_ENV=production node ./tools/script.js",
   "pub": "npm run dist",
   "start": "cross-env NODE_ENV=development node ./tools/script.js",
   "test": "node ./test.js",
}

我們從上面也可以看出会喝,我們可以在一個字段命令中運行另外一個字段陡叠。

bin 字段

bin 字段用來指定各個內(nèi)部命令對應(yīng)的可執(zhí)行文件的位置,一般而言肢执,對于需要全局安裝的包枉阵,我們都有該字段:

"bin": {
  "myCommand": "./bin/index.js"
}

上面的代碼中指定,myCommand 命令對應(yīng)的可執(zhí)行文件在同級別目錄下的 bin/index.js 中预茄,因此 npm 在安裝該包的時候就會在 node_modules/.bin 的目錄下建立符號鏈接兴溜,對于全局安裝的包,由于 node_modules/.bin 會在運行時加入系統(tǒng)的 PATH 變量耻陕,因此可以直接通過命令來調(diào)用腳本拙徽。

另外,如果我們是在項目內(nèi)安裝包诗宣,也可以通過 npx myCommand 的方式來進(jìn)行調(diào)用膘怕。

main 字段

main 字段指定了加載的入口文件,require('moduleName') 就會加載這個文件召庞。

對于 Node 來說岛心,這個字段的默認(rèn)值是模塊根目錄下面的 index.js。

config 字段

config 字段可以添加命令行的環(huán)境變量裁眯,例如下面的 package.json 文件:

{
  "name" : "buluo",
  "config" : { "port" : "8080" },
  "scripts" : { "start" : "node index.js" }
}

在 index.js 中鹉梨,我們可以直接使用該環(huán)境變量:

http
  .createServer(...)
  .listen(process.env.npm_package_config_port)

一些其他的描述性字段

接下來我們介紹一些描述性字段,這些描述性字段一般會在 npm 包的檢索穿稳、管理等中起到一定作用存皂。

keywords :npm 包的關(guān)鍵字,keywords 是一個字符串的數(shù)組逢艘。它可以幫助人們在使用 npm search 時找到這個包旦袋。
homepage :項目主頁的 url。
bugs :改項目的 issue 跟蹤頁面或這報告 issue 的 email 地址它改。這對使用這個包遇到問題的用戶會有幫助疤孕,例如:

{ 
  "url" : "https://github.com/owner/project/issues",
  "email" : "project@hostname.com"
}

license :指定該 npm 包所使用的協(xié)議。
author:包作者名字央拖,一般使用數(shù)組或者字符串祭阀,格式如下:

{
    "name": "Barney Rubble",
    "email": "b@rubble.com",
    "url": "http://barnyrubble.tumblr.com/"
}

或者

"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"

contributors: 貢獻(xiàn)者列表,是一個數(shù)組鲜戒,每一個單位的格式和 anthor 相同专控。
repository:指明你的代碼被托管在何處,這對那些想要參與到這個項目中的人來說很有幫助遏餐。如果 git 倉庫在 github 上伦腐,用 npm docs 命令將會找到你,例如:

{
    "type": "git",
    "url": "https://github.com/npm/npm.git"
}

以上便是對一部分 pacakge.json 的字段的介紹失都,實際上柏蘑,package.json 的字段不止這些幸冻,但是一般而言,了解以上字段已經(jīng)足夠我們?nèi)粘5膶W(xué)習(xí)和使用了咳焚。

更多字段可以參考官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洽损,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子黔攒,更是在濱河造成了極大的恐慌趁啸,老刑警劉巖强缘,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件督惰,死亡現(xiàn)場離奇詭異,居然都是意外死亡旅掂,警方通過查閱死者的電腦和手機赏胚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來商虐,“玉大人觉阅,你說我怎么就攤上這事∶爻担” “怎么了典勇?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長叮趴。 經(jīng)常有香客問我割笙,道長,這世上最難降的妖魔是什么眯亦? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任伤溉,我火速辦了婚禮,結(jié)果婚禮上妻率,老公的妹妹穿的比我還像新娘乱顾。我一直安慰自己,他們只是感情好宫静,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布走净。 她就那樣靜靜地躺著,像睡著了一般孤里。 火紅的嫁衣襯著肌膚如雪伏伯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天扭粱,我揣著相機與錄音舵鳞,去河邊找鬼。 笑死琢蛤,一個胖子當(dāng)著我的面吹牛蜓堕,可吹牛的內(nèi)容都是我干的抛虏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼套才,長吁一口氣:“原來是場噩夢啊……” “哼迂猴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起背伴,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤沸毁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后傻寂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體息尺,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年疾掰,在試婚紗的時候發(fā)現(xiàn)自己被綠了搂誉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡静檬,死狀恐怖炭懊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拂檩,我是刑警寧澤侮腹,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站稻励,受9級特大地震影響父阻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钉迷,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一至非、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糠聪,春花似錦荒椭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至身害,卻和暖如春味悄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背塌鸯。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工侍瑟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓涨颜,卻偏偏與公主長得像费韭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子庭瑰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345