Node.js package.json文件

2018-01-19 10:16 更新

npm模塊依賴項存儲在名為package.json的配置文件中,該文件位于項目的根目錄中。package.json中的JSON數(shù)據必須遵循某個模式。它必須有包的名稱和版本。包名稱由name字段指定。該名稱應該在npm注冊表中是包的唯一標識。

通過使用npm,該名稱將成為URL的一部分、命令行參數(shù)和目錄名稱。因此,名稱不能以點或下劃線開頭,不能包含空格或任何其他非網址安全字符。

公共包必須在npm注冊表中具有唯一的名稱。

下面的代碼有一個最小的package.json文件

{"name": "package-name", "version": "0.0.0"}

包的版本在版本字段中指定。版本,當與名稱結合時,為包提供真正唯一的標識符。版本號指定主版本,次版本和修補程序號,用點分隔。npm允許版本以 v 字符開頭。

你可以通過將標記附加到補丁編號來指定內部版本號。有兩種類型的標簽,prerelease和postrelease。Postrelease標簽增加版本號,而prerelease標簽減少它。postrelease標記是數(shù)字跟隨的連字符,其他標簽都是prerelease標簽。

以下示例顯示版本標簽。

0.9.6-7
0.9.6-7-beta
0.9.6-6
0.9.6
0.9.6beta

description和keywords

description字段提供包的文本描述。

keywords字段提供了一組關鍵字來描述包。

下面的代碼顯示了一個包含description和keywords字段的package.json。

"description": "This is a description of  the   module", 
"keywords": ["foo", "search", "baz"]

author和contributors

主作者在author字段中指定,其中只能包含一個條目。contributors可以包含一組人。

有兩種方法可以指定一個人。

"author":  {"name":  "Your Name",  
            "email":  "name@www.o2fo.com", 
            "url":  "http://www.o2fo.com"},
"contributors": [{"name":  "Name 1", 
                  "email": "n@www.o2fo.com", 
                  "url": "http://www.o2fo.com"},
                {"name":  "Name 2", 
                 "email": "m@www.o2fo.com", 
                 "url": "http://www.o2fo.com"
                }
                ]

或者

"author": "Your Name <name@www.o2fo.com> (http://www.o2fo.com)", 
"contributors": ["Name 1 <n@www.o2fo.com> (http://www.o2fo.com)", 
                 "Name 2 <m@www.o2fo.com> (http://www.o2fo.com)"]

主入口點

包的主入口點文件存儲在package.json文件中。main 字段告訴Node當使用 require()時要加載哪個文件。

將主入口點設置到位于 src 子目錄中的名為 bar.js 的文件。

"main": "./src/bar.js"

preferGlobal設置

要提醒用戶全局安裝軟件包,請使用 preferGlobal 設置

dependencies

包的依賴關系在package.json文件的dependencies字段中指定。

版本字符串可以是npm理解的任何版本表達式,包括git和tarball URL。

以下代碼僅根據命令器設置包的dependencies字段。

"dependencies": { "commander": "1.2.x"}

devDependencies

要包括僅用于測試和開發(fā)的包的依賴關系,使用devDependencies字段。

"devDependencies": { "mocha": "~1.8.1"}

開發(fā)依賴可以自動添加到package.json文件中。

為此,請將--save-dev標志附加到npm install命令。

npm install mocha --save-dev

可選依賴關系

使用可選的依賴項,npm將繼續(xù),盡管它們不存在??蛇x依賴項列在optionalDependencies字段中。

通過為npm install指定 --save-optional 標志,可以在安裝期間將可選依賴性添加到package.json文件。

要加載可選的包,可使用 try...catch if 語句。

下面的代碼假設 commander 是一個可選的依賴。

如果commander不存在,require()函數(shù)會拋出一個異常,然后將其封裝在try...catch 語句中。

在使用之前檢查commander是否具有定義的值。

var commander;

try  {
   commander = require("commander");
} catch (exception)  {
   commander = null;
}

if (commander)  {
   // do  something with  commander
}

engines

engines字段指定模塊的node版本和npm。

"engines": {"node": ">=0.10.12", "npm": "1.2.x"}

scripts

scripts字段(如果存在)包含npm命令到腳本命令的映射。腳本命令在外部shell進程中運行。它們可以是任何可執(zhí)行的命令。兩個最常用的命令是start和test。

start命令啟動你的應用程序,并測試運行一個或多個應用程序的test腳本。

"scripts": {
    "start": "node  server.js",
    "test": "echo  \"message\" &&   exit  1"
}

要執(zhí)行start和test命令,只需將命令名傳遞給npm。

$ npm test

其他字段

你可以在homepage字段中列出項目的主頁,在license字段中列出軟件許可證類型,以及在repository字段中列出項目源代碼的存儲庫。

獲取有關package.json文件的更多信息,可發(fā)出命令 npm help json 。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號