package.json
是一个json文件.
1.name 名称
名字和版本形成了唯一标识符,随版本改变而变化.
名字不能有大写,不能以点和下划线开头,名称要小于214个字符,名称不能包含非网址安全字符.
名字不要重复.
2.version 版本
版本必须可由node-semver解析,它与npm捆绑作为依赖关系.
3.description 描述
这个是说明,用来描述项目简介,有助于人们发现您的package.
4.keywords 关键字
字符串数组,有助于别人发现你的package的..
5.homepage 主页
项目主页的url,不建议用,会导致服务器重定向到你的包.
6.bugs 错误
项目问题跟踪报道,有助你别人发现你的问题和你沟通.
可以提供url,email.
提供url将会被npm bugs命令使用.
7.license 许可证
为你的包指定许可证,常见的又BSD-3-Clause等.
如果你不希望人看到,你可以
{"license":"UNLICENSED"}
还可以考虑设置"private":true以防止意外发布.
8.people fields: author, contributors 作者,贡献者.
有三个字段,name,email,url.
9.files 文件
文件字段要包括在项目中的文件数组,如果你在数组中命名了一个文件夹,name它也将包括该文件夹中的文件.
你也可以忽略它,在包的根目录或子目录中提供一个.npmignore文件.它将阻止包含文件,即使它们将被文件数组包含.
不能忽略的文件包括.
package.json,README,CHANGELOG,LICENSE/LICENCE
10.main 主要的.
主要字段是一个模板ID,他是程序的入口点.
如果你把包命名为了foo,并且用户安装它,然后require("foo"),你的主模板的exports对象将 返回..
11 bin
许多包有一个或多个可执行文件,使用bin可以为其提供映射.
12.man
指定要放置的单个文件或者文件名数组供man程序查找.
13.directories 目录
使用directories对象来指示包的结构.
包括有
"directories": {
"bin": "./bin",
"doc": "./doc",
"lib": "./lib",
"man": "./man"
},
directories.lib 包含了函数库的位置在哪里.没什么别的含义,但它是有用的元信息.
directories.bin 指定一个bin目录, 该文件夹中的所有文件将被添加.
指定单个文件用bin指定目录中的所有文件用directories.bin
directories.doc 把markdown文件放在这里.
14.repository 存储库
指定代码所在的位置,这对想要做贡献的人有帮助.
15.scripts 脚本
该字段是一个包含在包的生命周期中的各个时间运行的脚本命令的字典.
很重要
16.config 配置
该字段可用于设置在升级过程中持续的包脚本中使用的配置参数.
17.dependencies 依耐性
依赖关系在将包名称映射到版本范围的简单对象中去,版本范围是一串描述的字符串.
不要把测试线束或转运器放在dependencies中,应该放在devDependencies下.
{ "dependencies" :
{ "foo" : "1.0.0 - 2.9999.9999"
, "bar" : ">=1.0.2 <2.1.2"
, "baz" : ">1.0.2 <=2.3.4"
, "boo" : "2.0.1"
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
, "asd" : "http://asdf.com/asdf.tar.gz"
, "til" : "~1.2"
, "elf" : "~1.2.3"
, "two" : "2.x"
, "thr" : "3.3.x"
, "lat" : "latest"
, "dyl" : "file:../dyl"
}
}
依耐性可以以
URLs as Dependencies url作为依赖性
Git URLs as Dependencies git作为依赖性
GitHub URLs github的url作为依赖性
Local Paths 本地路径作为依赖性
18.devDependencies
开始时候的一些测试框架之类的应该放在这里面.
Dependencies和DevDependencies的不同
19.peerDependencies
如果你的包被作为插件了,那么作为插件的时候的相关依赖放这里.
20.bundledDependencies
将在发布package时捆绑的package名称数组
21.optionalDependencies 可选依赖关系
可选依赖项是当npm安装或者无法安装的时候,希望npm都继续.
optionalDependencies获取成功会覆盖Dependencies中的依赖性
22.engines 引擎
指定你的工作东西的node版本
如果不指定,则任何版本都可以执行.
23.os 系统
你可以指定模块将在那些操作系统上运行
24.cpu
如果你的代码只能运行在某些cpu架构上..指定这个字段.
25.preferGlobal
你的包应该全局安装时候,设置为true,在本地安装的时候将会报错.但不会阻止用户在本地安装.
26.private 私人的
防止意外发布私人存储库的方法.
27.publishConfig 发布时的配合
将在发布时时使用的配置值,如果你想设置标记,注册表和访问权限,
28.DEFAULT VALUES 默认值
npm将默认一些基于package内容的值