您的位置:首页 > Web前端 > Node.js

Node.js NPM 包管理器

2015-12-07 16:24 603 查看
NPM(NodePackage 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包管理器来安装,这里要注意这个是联网安装,

所以一定要在有网络的环境下进行。安装的方式是在终端中输入如下命令:

npminstall <Module Name>
<span style="color:#333333;">npm install <Module Name></span>

<ModuleName>代表的模块名字。比如你需要安装express模块,就可以输入

npminstall express
<span style="color:#333333;">npm install express</span>

安装完成接入如下:

安装好之后,express
包就放在了工程目录下的node_modules目录中,这里指同一个目录,因此在代码中只需要通过require('express')
的方式就好,无需指定第三方包路径。调用方式如下:

var express = require('express');
<span style="color:#333333;">var express = require('express');</span>

这里的路径要特别注意,按照刚才的安装路径,系统会在C:\Users\A1040687生成一个node_modules文件夹,里面就是我们安装的模块。

如果我将当前路径切换到D盘,那么模块会安装到D盘下,并且产生一个node_modules目录,里面存放我们安装的模块名字。

切换到D盘,并且安装express模块,此时会模块会安装到D盘下,如截图所示。

根据上面的截图,我们可以看出模块的版本,模块的名称,以及下载的位置。

全局安装与本地安装

上面的安装,我们就是采用的本地安装,npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:

npminstall express #本地安装
npminstall express -g #全局安装
<span style="color:#333333;">npm install express          # </span><span style="color:#333333;">本地安装</span>

npm install express -g   # 全局安装

如果出现以下错误:

npm err!Error: connect ECONNREFUSED 127.0.0.1:8087
<span style="color:#333333;">npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 </span>


解决办法为:

npmconfig set proxy null
<span style="color:#333333;"> npm config set proxy null</span>

这个地方很多人会因为代理上网的方式无法安装,所以建议采用直通的方式安装模块。

本地安装

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
<span style="color:#333333;">npm ls -g</span>

模块的卸载,我们可以通过如下命令进行卸载:

npmuninstall express -g #卸载全局模块
npmuninstall express #卸载本地模块
<span style="color:#333333;">npm uninstall express -g   #</span><span style="color:#333333;">卸载全局模块</span>

npm uninstall express      #卸载本地模块

如下截图:

卸载后,我们可以到 /node_modules/目录下查看包是否还存在,或者使用以下命令查看

npm ls
<span style="color:#333333;">npm ls</span>

模块的更新:

npmupdate express
<span style="color:#333333;">npm update express</span>

模块的搜索,

npmsearch express
<span style="color:#333333;">npm search express</span>

注意在第一次搜索的时候可能会花费较长的时间来创建索引。这样搜索的不仅仅是模块名,还有模块的描述,另外还可以使用空格隔开关键字的方法跨关键字搜索,比如:

npmsearch express accepts
<span style="color:#333333;">npm search express accepts</span>


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('module_name');
<span style="color:#333333;">var _=require('module_name');</span>

现在,当运行应用程序的时候,它将在原文件中找到库并将其包含在应用程序中,通常要我们使用这个模块,所以我们将其赋予一个变量。

1、使用文本编辑器,在里面输入:

var _=require('underscore');
_.each([1,2,3],function(num){
console.log("underscore.js says"+num);
});
<span style="color:#333333;">var _=require('underscore');</span>

_.each([1,2,3],function(num){

console.log("underscore.js says"+num);

});

然后将文本保存为foo.js。

2、使用终端安装underscore模块:

npminstall underscore
<span style="color:#333333;">npm install underscore</span><span style="color:#333333;">
3</span><span style="color:#333333;">、从终端运行程序:</span>

nodefoo.js
<span style="color:#333333;">node foo.js</span>

输出截图的信息,该程序underscore模块数到3,代表运行成功,在运行的时候,一定要注意路径,node_modules与foo.js一定要在同一个目录下,不然会运行失败。

我的路径:

最后,在开发Node.js应用程序的时候,毫无疑问要使用模块,一个一个安装模块会是个耗时的工作,而且容易出错,比如要是忘记安装某个模块该怎么办呢?不用担心,npm允许开发人员使用package.json文件来指定应用程序中要使用的模块,使用它有如下好处:

1、无需一个一个安装模块

2、其他人员可以很容易的安装你应用程序的模块

3、应用程序的依赖关系存储在一个地方

关于这个的具体用法,我会在后面的文章中进一步介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: