Node.js 12实战
上QQ阅读APP看书,第一时间看更新

2.1.3 package.json属性说明

NPM在package.json文件中管理项目的依赖项以及项目的元数据。

node执行require指令时,会根据package.json中的依赖项执行查找。每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(如项目名称、版本号、许可证等元数据)。npm install命令会根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。例如:

package.json文件就是一个JSON对象,该对象的每一个成员就是当前项目的一项基础设置信息,各成员说明如下:

· Name:包名。

· Version:包的版本号,语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。

· Description:包的描述。

· Homepage:包的官网地址。

· Author:包的作者姓名。

· Contributors:包的其他贡献者姓名。

· Dependencies:依赖包列表,指定了项目运行所依赖的模块。如果依赖包没有安装,npm就会自动将依赖包安装在node_module目录下。

· devDependencies:指定项目开发所需要的模块。

· repository:包代码存放的地方的类型,可以是Git或Svn,Git可在GitHub上。

· main:main字段指定了程序的主入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。

· keywords:关键字。

· scripts:指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时所要执行的命令。

· bin:用来指定各个内部命令对应的可执行文件的位置。

· config:用于添加命令行的环境变量。

package.json文件可以手工编写,也可以使用npm init命令自动生成:

npm init

这个命令采用交互方式要求用户回答一些问题,然后在当前目录生成一个基本的package.json文件。所有问题之中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。

有了package.json文件,直接使用npm install命令就会在当前目录中安装所需要的模块。

$ npm install

如果一个模块不在package.json文件中,可以单独安装这个模块,并使用相应的参数将其写入package.json文件中:

$ npm install express --save
$ npm install express --save-dev

这两行代码表示单独安装express模块,--save参数表示将该模块写入dependencies属性,--save-dev表示将该模块写入devDependencies属性。