nodejs npm package.json中文文档

npm会根据包内容设置一些默认值。

复制代码 代码如下:

"scripts": {"start": "node server.js"}
如果包的根目录有server.js文件,npm会默认将start命令设置为node server.js。

"scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}
如果包的根目录有wscript文件,npm会默认将preinstall命令用node-waf进行编译。

"scripts":{"preinstall": "node-gyp rebuild"}
如果包的根目录有binding.gyp文件,npm会默认将preinstall命令用node-gyp进行编译。

"contributors": [...]
如果包的根目录有AUTHORS文件,npm会默认逐行按Name <email> (url)格式处理,邮箱和url是可选的。#号和空格开头的行会被忽略。

name

在package.json中最重要的就是name和version字段。他们都是必须的,如果没有就无法install。name和version一起组成的标识在假设中是唯一的。改变包应该同时改变version。

name是这个东西的名字。注意:

1.不要把node或者js放在名字中。因为你写了package.json它就被假定成为了js,不过你可以用”engine”字段指定一个引擎(见后文)。
2.这个名字会作为在URL的一部分、命令行的参数或者文件夹的名字。任何non-url-safe的字符都是不能用的。
3.这个名字可能会作为参数被传入require(),所以它应该比较短,但也要意义清晰。
4.在你爱上你的名字之前,你可能要去npm registry查看一下这个名字是否已经被使用了。

version

在package.json中最重要的就是name和version字段。他们都是必须的,如果没有就无法install。name和version一起组成的标识在假设中是唯一的。改变包应该同时改变version。

version必须能被node-semver解析,它被包在npm的依赖中。(要自己用可以执行npm install semver)

可用的“数字”或者“范围”见semver(7).

description

放简介,字符串。方便屌丝们在npm search中搜索。

keywords

关键字,数组、字符串。还是方便屌丝们在npm search中搜索。

homepage

项目官网的url。

注意:这和“url”不一样。如果你放一个“url”字段,registry会以为是一个跳转到你发布在其他地方的地址,然后喊你滚粗。

嗯,滚粗,没开玩笑。

bugs

你项目的提交问题的url和(或)邮件地址。这对遇到问题的屌丝很有帮助。

差不多长这样:

复制代码 代码如下:


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

你可以指定一个或者指定两个。如果你只想提供一个url,那就不用对象了,字符串就行。

如果提供了url,它会被npm bugs命令使用。

license

你应该要指定一个许可证,让人知道使用的权利和限制的。

最简单的方法是,假如你用一个像BSD或者MIT这样通用的许可证,就只需要指定一个许可证的名字,像这样:

复制代码 代码如下:


{ "license" : "BSD" }


如果你又更复杂的许可条件,或者想要提供给更多地细节,可以这样:

复制代码 代码如下:


"licenses" : [
  { "type" : "MyLicense"
  , "url" : "http://github.com/owner/project/path/to/license"
  }
]


在根目录中提供一个许可证文件也蛮好的。

people fields: author, contributors

author是一个人。contributors是一堆人的数组。person是一个有name字段,可选的有url、email字段的对象,像这样:

复制代码 代码如下:


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


或者可以把所有的东西都放到一个字符串里,npm会给你解析:

复制代码 代码如下:


"Barney Rubble <b@rubble.com> ()


email和url在两种形式中都是可选的。

也可以在你的npm用户信息中设置一个顶级的maintainers字段。

files

files是一个包含项目中的文件的数组。如果命名了一个文件夹,那也会包含文件夹中的文件。(除非被其他条件忽略了)

你也可以提供一个.npmignore文件,让即使被包含在files字段中得文件被留下。其实就像.gitignore一样。

main

main字段是一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫foo,然后用户安装它,然后require("foo"),然后你的main模块的exports对象会被返回。

这应该是一个相对于根目录的模块ID。

对于大多数模块,它是非常有意义的,其他的都没啥。

bin

很多包都有一个或多个可执行的文件希望被放到PATH中。npm让妈妈再也不用担心了(实际上,就是这个功能让npm可执行的)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgsxxy.html