NPM(Node Package Manager ,Node包管理器)是Node.js的包管理器,它允许开发人员在Node.js中创建,共享并重用模块。它也可以用于共享完整的Node.js应用程序,模块就是可以在不同项目中可以重用的代码库。NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
典型的模块示例包括:
1、用于数据库交互的库
2、验证数据输入的库
3、分析yaml文件的库
1、NPM包的安装
如果根据上一节的内容,是在http://nodejs.cn/ 下载地址安装的,系统已经默认安装好了,因为它目前已经集成在Node的安装包中,如果有没有安装好的用户,
可以直接去官方网站下载安装,这里就不在介绍。如下截图是安装好了Node以后,系统提示你已经安装了NPM包。
另外我们可以输入npm -v 来查看nmp包管理器的版本
2、使用NPM管理器安装模块
如果我们的代码中有调用一些外部模块,此时我们就需要安装模块,当然安装这些模块最好的方式就是用NPM包管理器来安装,这里要注意这个是联网安装,所以一定要在有网络的环境下进行。安装的方式是在终端中输入如下命令:
npm install <Module Name>
<ModuleName> 代表的模块名字。比如你需要安装express模块,就可以输入
npm install express安装完成接入如下:
安装好之后,express 包就放在了工程目录下的 node_modules 目录中,这里指同一个目录,因此在代码中只需要通过 require('express') 的方式就好,无需指定第三方包路径。调用方式如下:
var express = require('express');
这里的路径要特别注意,按照刚才的安装路径,系统会在C:\Users\A1040687生成一个node_modules文件夹,里面就是我们安装的模块。
如果我将当前路径切换到D盘,那么模块会安装到D盘下,并且产生一个node_modules目录,里面存放我们安装的模块名字。
切换到D盘,并且安装express 模块,此时会模块会安装到D盘下,如截图所示。
根据上面的截图,我们可以看出模块的版本,模块的名称,以及下载的位置。
全局安装与本地安装
上面的安装,我们就是采用的本地安装,npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:
npm install express # 本地安装
npm install express -g # 全局安装如果出现以下错误:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解决办法为:
npm config set proxy null这个地方很多人会因为代理上网的方式无法安装,所以建议采用直通的方式安装模块。
本地安装
- 1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
- 2. 可以通过 require() 来引入本地安装的包。
全局安装
- 1. 将安装包放在 /usr/local 下。
- 2. 可以直接在命令行里使用。
- 3. 不能通过 require() 来引入本地安装的包。
全局安装express 模块,此时安装在了C:\Users\A1040687\AppData\Roaming\npm\node_modules 路径下,并不会安装在D盘下。
另外我们可以通过如下命令,查看全局安装的模块:
npm ls -g
模块的卸载,我们可以通过如下命令进行卸载:
npm uninstall express -g #卸载全局模块
npm uninstall express #卸载本地模块如下截图:
卸载后,我们可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看
npm ls
模块的更新:
npm update express模块的搜索,
npm search express注意在第一次搜索的时候可能会花费较长的时间来创建索引。这样搜索的不仅仅是模块名,还有模块的描述,另外还可以使用空格隔开关键字的方法跨关键字搜索,比如:
npm search express accepts
NPM 常用命令
除了可以在npmjs.org/doc/查看官方文档外,这里再介绍一些NPM常用命令。
NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
-
NPM提供了很多命令,例如
install和publish,使用npm help可查看所有命令。 -
使用
npm help <command>可查看某条命令的详细帮助,例如npm help install。 -
在
package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。 -
使用
npm update <package>可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。 -
使用
npm update <package> -g可以把全局安装的对应命令行程序更新至最新版。 -
使用
npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。 -
使用
npm unpublish <package>@<version>可以撤销发布自己发布过的某个版本代码。 - 使用npm docs <module_name> 查看模块文档。
- 使用npm bugs <module_name>查看项目Bugs。
使用模块小试牛刀:
要在Node.js应用中使用模块,在下载它们之后必须请求(require)它们,在应用程序中请求一个模块的方法如下:
var _=require('<span style="font-size:12px;">module_name</span>');现在,当运行应用程序的时候,它将在原文件中找到库并将其包含在应用程序中,通常要我们使用这个模块,所以我们将其赋予一个变量。
var _=require('underscore');
_.each([1,2,3],function(num){
console.log("underscore.js says"+num);
});然后将文本保存为foo.js。
2、使用终端安装underscore模块:
npm install underscore
3、从终端运行程序:
node foo.js
输出截图的信息,该程序underscore模块数到3,代表运行成功,在运行的时候,一定要注意路径,node_modules与foo.js一定要在同一个目录下,不然会运行失败。
我的路径:
最后,在开发Node.js应用程序的时候,毫无疑问要使用模块,一个一个安装模块会是个耗时的工作,而且容易出错,比如要是忘记安装某个模块该怎么办呢?不用担心,npm允许开发人员使用package.json文件来指定应用程序中要使用的模块,使用它有如下好处:
1、无需一个一个安装模块
2、其他人员可以很容易的安装你应用程序的模块
3、应用程序的依赖关系存储在一个地方
关于这个的具体用法,我会在后面的文章中进一步介绍。
本文介绍了NPM(Node包管理器)的基本使用方法,包括如何安装、更新、卸载模块,以及如何利用NPM管理项目的依赖关系。

被折叠的 条评论
为什么被折叠?



