: 如果你在中指定一个bin目录,在这个目录中的所有文件都会被当做在bin来使用。
由于bin指令的工作方式,同时指定一个bin路径和设置将是一个错误。如果你想指定独立的文件,使用bin,如果想执行某个文件夹里的所有文件,使用。
: 把markdown文件放在这。也许某一天这些文件将被漂亮地展示出来,不过这仅仅是也许
repository: 项目代码存放地方
“repository” :
{ “type” : “git”
, “url” : “/npm/”
}
“repository” :
{ “type” : “svn”
, “url” : “/svn/trunk/”
}
scripts: 声明一系列npm脚本指令
- prepublish: 在包发布之前运行,也会在npm install安装到本地时运行
- publish,postpublish: 包被发布之后运行
- preinstall: 包被安装前运行
- install,postinstall: 包被安装后运行
- preuninstall,uninstall: 包被卸载前运行
- postuninstall: 包被卸载后运行
- preversion: bump包版本前运行
- postversion: bump包版本后运行
- pretest,test,posttest: 通过npm test命令运行
- prestop,stop,poststop: 通过npm stop命令运行
- prestart,start,poststart: 通过npm start命令运行
- prerestart,restart,postrestart: 通过npm restart运行
config: 配置项目中需要的配置参数:
{ “name” : “foo”
, “config” : { “port” : “8080” }
, “scripts” : { “start” : “node ” } } }
中使用.npm_package_config_port来访问port
用户也可以这样修改:npm config set foo:port 80
dependencies: 项目在生产环境中依赖的包
peerDependencies: 在某些情况下,当一个主机无法require依赖包时,你会想要告诉它还有哪些工具或库与这个依赖包兼容。这通常被成为一个插件。尤其是在host文档中声明的模块会暴露一个特定的接口
{
“name”: “tea-latte”,
“version”: “1.3.5”,
“peerDependencies”: {
“tea”: “”
}
}
这将确保tea-latte这个包只会和版本的tea一起被安装。执行npm install tea-latte可能产生以下关系图:
├── tea-latte@1.3.5
└── tea@2.2.0
bundledDependencies: {Array},发布时会被一起打包的模块
optionalDependencies: 如果一个依赖模块可以被使用, 同时你也希望在该模块找不到或无法获取时npm继续运行,你可以把这个模块依赖放到optionalDependencies配置中。这个配置的写法和dependencies的写法一样,不同的是这里边写的模块安装失败不会导致npm install失败。当然,这种模块就需要你自己在代码中处理模块确实的情况了,例如:
try {
var foo = require(‘foo’)
var fooVersion = require(‘foo/’).version
} catch (er) {
foo = null
}
if ( notGoodFooVersion(fooVersion) ) {
foo = null
}
// .. then later in your program ..
if (foo) {
()
}
engines: 声明项目需要的node或npm版本范围
{ “engines” : { “npm” : “~1.0.20” } }
{ “engines” : { “node” : “>=0.10.3 <0.12” } }
os: 指定你的项目将运行在什么操作系统上