W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
通過使用npm,該名稱將成為URL的一部分、命令行參數(shù)和目錄名稱。因此,名稱不能以點(diǎn)或下劃線開頭,不能包含空格或任何其他非網(wǎng)址安全字符。
公共包必須在npm注冊(cè)表中具有唯一的名稱。
下面的代碼有一個(gè)最小的package.json文件
{"name": "package-name", "version": "0.0.0"}
包的版本在版本字段中指定。版本,當(dāng)與名稱結(jié)合時(shí),為包提供真正唯一的標(biāo)識(shí)符。版本號(hào)指定主版本,次版本和修補(bǔ)程序號(hào),用點(diǎn)分隔。npm允許版本以 v
字符開頭。
你可以通過將標(biāo)記附加到補(bǔ)丁編號(hào)來指定內(nèi)部版本號(hào)。有兩種類型的標(biāo)簽,prerelease和postrelease。Postrelease標(biāo)簽增加版本號(hào),而prerelease標(biāo)簽減少它。postrelease標(biāo)記是數(shù)字跟隨的連字符,其他標(biāo)簽都是prerelease標(biāo)簽。
以下示例顯示版本標(biāo)簽。
0.9.6-7 0.9.6-7-beta 0.9.6-6 0.9.6 0.9.6beta
description字段提供包的文本描述。
keywords字段提供了一組關(guān)鍵字來描述包。
下面的代碼顯示了一個(gè)包含description和keywords字段的package.json。
"description": "This is a description of the module", "keywords": ["foo", "search", "baz"]
主作者在author字段中指定,其中只能包含一個(gè)條目。contributors可以包含一組人。
有兩種方法可以指定一個(gè)人。
"author": {"name": "Your Name", "email": "name@o2fo.com", "url": "http://o2fo.com"}, "contributors": [{"name": "Name 1", "email": "n@o2fo.com", "url": "http://o2fo.com"}, {"name": "Name 2", "email": "m@o2fo.com", "url": "http://o2fo.com" } ]
或者
"author": "Your Name <name@o2fo.com> (http://o2fo.com)", "contributors": ["Name 1 <n@o2fo.com> (http://o2fo.com)", "Name 2 <m@o2fo.com> (http://o2fo.com)"]
包的主入口點(diǎn)文件存儲(chǔ)在package.json文件中。main
字段告訴Node當(dāng)使用 require()
時(shí)要加載哪個(gè)文件。
將主入口點(diǎn)設(shè)置到位于 src
子目錄中的名為 bar.js
的文件。
"main": "./src/bar.js"
要提醒用戶全局安裝軟件包,請(qǐng)使用 preferGlobal
設(shè)置
包的依賴關(guān)系在package.json文件的dependencies字段中指定。
版本字符串可以是npm理解的任何版本表達(dá)式,包括git和tarball URL。
以下代碼僅根據(jù)命令器設(shè)置包的dependencies字段。
"dependencies": { "commander": "1.2.x"}
要包括僅用于測(cè)試和開發(fā)的包的依賴關(guān)系,使用devDependencies字段。
"devDependencies": { "mocha": "~1.8.1"}
開發(fā)依賴可以自動(dòng)添加到package.json文件中。
為此,請(qǐng)將--save-dev標(biāo)志附加到npm install命令。
npm install mocha --save-dev
使用可選的依賴項(xiàng),npm將繼續(xù),盡管它們不存在??蛇x依賴項(xiàng)列在optionalDependencies字段中。
通過為npm install指定 --save-optional
標(biāo)志,可以在安裝期間將可選依賴性添加到package.json文件。
要加載可選的包,可使用 try...catch
和 if
語句。
下面的代碼假設(shè) commander
是一個(gè)可選的依賴。
如果commander不存在,require()
函數(shù)會(huì)拋出一個(gè)異常,然后將其封裝在try...catch
語句中。
在使用之前檢查commander是否具有定義的值。
var commander; try { commander = require("commander"); } catch (exception) { commander = null; } if (commander) { // do something with commander }
engines字段指定模塊的node版本和npm。
"engines": {"node": ">=0.10.12", "npm": "1.2.x"}
scripts字段(如果存在)包含npm命令到腳本命令的映射。腳本命令在外部shell進(jìn)程中運(yùn)行。它們可以是任何可執(zhí)行的命令。兩個(gè)最常用的命令是start和test。
start命令啟動(dòng)你的應(yīng)用程序,并測(cè)試運(yùn)行一個(gè)或多個(gè)應(yīng)用程序的test腳本。
"scripts": { "start": "node server.js", "test": "echo \"message\" && exit 1" }
要執(zhí)行start和test命令,只需將命令名傳遞給npm。
$ npm test
你可以在homepage
字段中列出項(xiàng)目的主頁,在license
字段中列出軟件許可證類型,以及在repository
字段中列出項(xiàng)目源代碼的存儲(chǔ)庫。
獲取有關(guān)package.json文件的更多信息,可發(fā)出命令 npm help json
。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: