Node.js package.json文件

2018-01-19 10:16 更新

npm模块依赖项存储在名为package.json的配置文件中,该文件位于项目的根目录中。package.json中的JSON数据必须遵循某个模式。它必须有包的名称和版本。包名称由name字段指定。该名称应该在npm注册表中是包的唯一标识。

通过使用npm,该名称将成为URL的一部分、命令行参数和目录名称。因此,名称不能以点或下划线开头,不能包含空格或任何其他非网址安全字符。

公共包必须在npm注册表中具有唯一的名称。

下面的代码有一个最小的package.json文件

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

包的版本在版本字段中指定。版本,当与名称结合时,为包提供真正唯一的标识符。版本号指定主版本,次版本和修补程序号,用点分隔。npm允许版本以 v 字符开头。

你可以通过将标记附加到补丁编号来指定内部版本号。有两种类型的标签,prerelease和postrelease。Postrelease标签增加版本号,而prerelease标签减少它。postrelease标记是数字跟随的连字符,其他标签都是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.w3cschool.cn", 
            "url":  "http://www.w3cschool.cn"},
"contributors": [{"name":  "Name 1", 
                  "email": "n@www.w3cschool.cn", 
                  "url": "http://www.w3cschool.cn"},
                {"name":  "Name 2", 
                 "email": "m@www.w3cschool.cn", 
                 "url": "http://www.w3cschool.cn"
                }
                ]

或者

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

主入口点

包的主入口点文件存储在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

要包括仅用于测试和开发的包的依赖关系,使用devDependencies字段。

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

开发依赖可以自动添加到package.json文件中。

为此,请将--save-dev标志附加到npm install命令。

npm install mocha --save-dev

可选依赖关系

使用可选的依赖项,npm将继续,尽管它们不存在。可选依赖项列在optionalDependencies字段中。

通过为npm install指定 --save-optional 标志,可以在安装期间将可选依赖性添加到package.json文件。

要加载可选的包,可使用 try...catch if 语句。

下面的代码假设 commander 是一个可选的依赖。

如果commander不存在,require()函数会抛出一个异常,然后将其封装在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进程中运行。它们可以是任何可执行的命令。两个最常用的命令是start和test。

start命令启动你的应用程序,并测试运行一个或多个应用程序的test脚本。

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

要执行start和test命令,只需将命令名传递给npm。

$ npm test

其他字段

你可以在homepage字段中列出项目的主页,在license字段中列出软件许可证类型,以及在repository字段中列出项目源代码的存储库。

获取有关package.json文件的更多信息,可发出命令 npm help json

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号