通过使用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字段的package.json。
"description": "This is a description of the module", "keywords": ["foo", "search", "baz"]
主作者在author字段中指定,其中只能包含一个条目。contributors可以包含一组人。
有两种方法可以指定一个人。
"author": {"name": "Your Name", "email": "name@www..cn", "url": "http://www..cn"}, "contributors": [{"name": "Name 1", "email": "n@www..cn", "url": "http://www..cn"}, {"name": "Name 2", "email": "m@www..cn", "url": "http://www..cn" } ]
或者
"author": "Your Name <name@www..cn> (http://www..cn)", "contributors": ["Name 1 <n@www..cn> (http://www..cn)", "Name 2 <m@www..cn> (http://www..cn)"]
包的主入口点文件存储在package.json文件中。main
字段告诉Node当使用 require()
时要加载哪个文件。
将主入口点设置到位于 src
子目录中的名为 bar.js
的文件。
"main": "./src/bar.js"
要提醒用户全局安装软件包,请使用 preferGlobal
设置
包的依赖关系在package.json文件的dependencies字段中指定。
版本字符串可以是npm理解的任何版本表达式,包括git和tarball URL。
以下代码仅根据命令器设置包的dependencies字段。
"dependencies": { "commander": "1.2.x"}
要包括仅用于测试和开发的包的依赖关系,使用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字段指定模块的node版本和npm。
"engines": {"node": ">=0.10.12", "npm": "1.2.x"}
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
。
Underscore(npm install underscore)是目前为止NPM上最流行的JavaScript库,是有最大数量dependent的库。它被称为underscore是因...
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一...