什么是 package.json
文件
所有的 npm
包中都有一个这么一个文件,它通常在包的根目录下 —— package.json
。这个文件包含与项目相关的各种元数据。该文件提供 npm
识别并处理项目依赖的基本信息。它还可以包含其他元数据,例如项目说明、特定发行版中的项目版本、许可证信息、甚至是配置数据 - 所有这些对 npm
和软件包的最终用户都是至关重要的。package.json
文件通常位于 Node.js
项目的根目录下。
Node.js
本身只知道 package.json
中的如下两个字段:
{
"name": "project name",
"version": "0.0.0.0"
}
name
字段代表项目名称;version
字段使 npm 能正确识别当前安装软件包的版本,通常,它采用 major.minor.patch
的形式,其中 major
,minor
和 patch
是在每个新发行版之后增加的整数。具体信息可以访问 http://semver.org。
更加完整的 package.json
文件可以看看下面的示例:
{
"name" : "underscore",
"description" : "JavaScript's functional programming helper library.",
"homepage" : "http://documentcloud.github.com/underscore/",
"keywords" : ["util", "functional", "server", "client", "browser"],
"author" : "Jeremy Ashkenas <jeremy@documentcloud.org>",
"contributors" : [],
"dependencies" : [],
"repository" : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"},
"main" : "underscore.js",
"version" : "1.1.6"
}
正如你所看到的,这里有 description
和 keyword
字段,这将可以帮助其它人通过简短的单词及描述快速了解你的项目。还有诸如:homepage
、author
、contributors
、repository
等字段可以用来感谢项目的贡献者、如何与作者取得联系以及提供额外的参考地址。
其中 main
字段表明库的入口,当有人运行 require(<library name>)
时,require
将此调用解析为 require(<package.json:main>)
。
最后,dependencies
字段列出了项目中依赖的所有 npm
包。当有人使用 npm
安装你的项目的时候,这些依赖也将被安装。另外,如果有人在你的项目根目录下执行 npm install
命令,那么这些依赖就将会被安装到 ./node_modules
下。
您也可以在您的 package.json
中添加一个 devDependencies
字段——正常情况下我们不需要这些依赖,但是如果您想打补丁或修改项目,则需要/推荐。例如,您使用了测试框架来进行单元测试,则建议您将这些依赖放到 devDependencies
中去。使用 npm install --dev
命令安装的依赖将会被放到 devDependencies
中去。
关于更多设置,你可以查看 在线文档 或使用命令 npm help json
。