所有的 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。
