package.json基础入门

一、说明

1、package.json文件是Node.js生态系统的核心,是了解和使用Node.js,npm甚至现代JavaScript的基本部分。它是应用程序、模块、npm引入包等的清单。
2、每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
3、package.json文件就是一个JSON对象,该对象的每一个成员就是当前项目的一项设置。比如name就是项目名称,version是版本(遵守“大版本.次要版本.小版本”的格式)。

二、package.json文件生成

1、package.json文件可以手工编写,也可以使用npm init命令自动生成。
2、package.json文件中只有项目名称(name)和项目版本(version)是必填的,其他都是选填的;
3、有了package.json文件,直接使用npm install命令,就会在当前目录中安装所需要的模块。

package.json基础入门

三、Package.json属性说明

1、name - 包名。
2、version - 包的版本号。
3、description - 包的描述。
4、homepage - 项目url主页。
5、author - 包的作者姓名。
6、contributors - 包的其他贡献者姓名。

package.json基础入门

7、dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
8、private - 如果设置为true, 那么npm会拒绝发布它;
9、repository - 项目代码存放地方,可以是 git 或 svn,git 可在 Github 上。如下图所示:

package.json基础入门

9、main - main 字段指定了程序的主入口文件。比如主文件默认是index.js,项目名是moduleName,则require(‘moduleName’) 就会加载index.js文件;
10、bin - 项目用到的可执行文件配置,指定各个内部命令对应的可执行文件的位置;
11、man - 指定一个单一的文件名或一个文件名数组。
12、keywords - 关键字,便于用户搜索到我们的项目;
13、bugs - 项目问题反馈的Url或email配置;如下图所示:

package.json基础入门

14、license - 项目许可证,让使用者知道是如何被允许使用此项目。默认是”ISC”;
15、scripts - 声明一系列npm脚本指令;如下图所示:

package.json基础入门

package.json基础入门
16、dependencies - 项目在生产环境中依赖的包,项目运行所依赖的模块。如下图所示:

package.json基础入门package.json基础入门

17、devDependencies - 项目在开发和测试环境中依赖的包,版本管理与dependencies相同;

package.json基础入门

18、peerDependencies - 在某些情况下,当一个主机无法require依赖包时,你会想要告诉它还有哪些工具或库与这个依赖包兼容。这通常被称为一个插件。

package.json基础入门

19、config - 配置项目中需要的配置参数,添加命令行的环境变量,如下图所示:

package.json基础入门

20、directories - CommonJS Packages规范说明了几种你可以用directories对象来标示你的包结构的方法;

package.json基础入门

21、bundledDependencies: {Array} - 发布时会被一起打包的模块;
22、optionalDependencies - 如果一个依赖模块可以被使用, 同时你也希望在该模块找不到或无法获取时npm继续运行,你可以把这个模块依赖放到optionalDependencies配置中。

23、engines - 声明项目需要的node或npm版本范围,如下图所示:

package.json基础入门

24、os - 指定你的项目将运行在什么操作系统上;
25、cpu - 指定你的项目将运行在什么cpu架构上;
26、preferGlobal - 如果你的包需要全局安装,通过命令行来运行,那么设置为true。如果这个包被本地安装则会出现一个警告;
27、browser - 指定该模板供浏览器使用的版本。Browserify这样的浏览器打包工具,通过它就知道该打包那个文件;

package.json基础入门

28、style - 指定供浏览器使用时,样式文件所在的位置。样式文件打包工具parcelify,通过它知道样式文件的打包位置。

参考链接:
[1]: https://www.cnblogs.com/bydzhangxiaowei/p/8729210.html
[2]: http://javascript.ruanyifeng.com/nodejs/packagejson.html