在Node.js中,可以通过包来对一组具有相互依赖关系的模块进行统一管理。通过包的使用,可以将某个独立的功能封装起来。另外,Node.js提供了一个npm (Node Package Manager)包管理工具来管理这些包。
一.Node.js中的包
在Node.js中,一个包事实上是一个目录,其中包含了用于对包进行描述的JSON格式的package.json文件。在一个包中,通常包含如下所示的一些内容:
- 在包的根目录中存放package.json文件。
- 在bin子目录中存放二进制文件。
- 在lib子目录中存放JavaScript文件。
- 在doc子目录存放对包或包的使用方法进行说明的文档文件。
- 在test子目录中存放一些对包进行单元测试用的文件。
其中,一个package.json文件中通常应该包含的字段及其作用如下所示:
- name, 包名。包名是唯一的。由小写字母、数字和下划线组成,不能含空格。
- preferglobal, 是否支持全局安装。字段值为true时支持全局安装,字段值为false时不支持全局安装。
- description, 包说明。对包进行简要描述。
- version, 版本号。
- author, 作者信息数组。每个数组元素中可包含name(作者姓名)字段、email(作者E-mail)字段、web(作者网址)字段。
- maintainers, 包维护者信息数组。每个数组元素中可包含name (包维护者姓名)字段、 email (包维护者 E-mail) 字段、 web (包维护者网址)字段。
- bugs, bug 的提交地址,可以是网址或电邮地址。
- licenses, 许可证数组。每个元素要包含type(许可证名称)和url(链接到许可证文本的地址)字段。
- repository, 仓库托管地址数组。每个元素要包含 type (仓库的类型, 如 Git) 、url (仓库地址)和path(相对于仓库的路径,可选)字段。
- keywords, 关键字数组,通常用于搜索。
- dependencies, 本包所依赖的包。是一个关联数组,由包名和版本号组成。
二.npm包管理工具
在命令行窗口中, 我们可以通过不同命令的输入以执行npm包管理工具中的各种功能。
例如, 我们可以通过如下所示的命令在 node.js的官方包仓库中搜索并查看vue包的信息。
npm search vue
可以通过如下所示的命令查看官方包仓库中vue包所 用package.json文件中的信息。
npm view vue
当我们需要下载vue包时, 可以在命令行提示窗口中输入以下命令:
npm install vue
该命令将把vue包安装在命令行提示窗口当前目录下的 node_modules子文件夹中。
如果在 该命令中加入 "-g" 选项, 则将把vue包安装在Node.js的全局包的安装路径中(所有应用程序均可使用该路径下的包),命令如下所示:
npm install -g vue
可以通过以下命令来查看Node.js的全局包的安装路径:
npm root -g
可以通过以下命令来修改Node.js的全局包的安装路径:
npm config set prefix "d: \node"
该命令将把Node.js的全局包的安装路径修改为"d:\node\node _modules"。
我们可以通过如下所示的命令来查看命令行提示窗口当前目录下所安装的所有包:
npm list
可以通过如下所示的命令来查看Node.js的全局包的安装路径下安装的所有包:
npm list -g
可以通过如下所示的命令来卸载命令行提示窗口当前目录下安装的某个包:
npm uninstall <包名>
可以通过如下所示的命令来卸载Node.js的全局包的安装路径下安装的某个包:
npm uninstall -g <包名>
可以通过如下所示的命令来更新命令行提示窗口当前目录下安装的某个包:
npm update<包名>
可以通过如下所示的命令来更新Node.js的全局包的安装路径下安装的某个包:
npm update -g <包名>
可以通过如下所示的命令来更新命令行提示窗口当前目录下安装的所有包:
npm update
可以通过如下所示的命令来更新Node.js的全局包的安装路径下安装的所有包:
npm update -g