Package.json
package.json是CommonJS规定的用来描述包的文件,完全符合规范的package文件应该含有以下字段:
name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格。
description:包的简要说明。
version:符合语义化版本识别规范的版本字符串。
keywords:关键字数组,通常用于搜索
maintainers:维护者数组,每个元素要包含name、email(可选)、web(可选)字段。
contributors:贡献者数组,格式与maintainers相同。他的作者应该是贡献者数组的第一个元素。
bugs:提交bug的地址,可以是网址或者电子邮件地址。
licenses:许可证数组,每个元素要包含type(许可证的名称)和url(连接到许可证文本的地址)字段。
repositories:仓库托管地址数组,每个元素要包含type(仓库的类型,如git)、url(仓库的地址)、和path(相对于仓库的路径,可选)字段。
dependencies:包的依赖,一个关联数组,由包名称和版本号组成。
Node.js包管理器
npm是Node.js官方提供的包管理工具,它已经成了Node.js包的标准发布平台,用于Node.js包的发布、传播、依赖控制。npm提供了命令行工具,是你可以方便的下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。
使用npm安装包的命令格式为:
npm [install/i] [package_name]
例如要安装express,在命令行输入
npm install express
或者
npm i express
随后你会看到安装信息。
本地模式与全局模式
在使用npm安装包的时候有两种模式:本地模式和全局模式。
上面所述方法为本地模式,全局模式的使用方法为:
npm [install/i] -g [package_name]
本地模式不会注册PATH环境变量,仅仅是把包安装到了node_modules子目录下,其中的bin目录没有包含在PATH环境变量中,不能直接在命令行中调用。而全局模式可以直接在命令行中调用,使用全局变量可减少多重副本。但是使用全局模式安装的包并不能直接在JavaScript文件中用require获得,因为require不会搜索node-modules目录。
当我们要把某个包作为工程运行的一部分时,通过本地模式获取,若要在命令行下使用,则使用全局模式安装。