Node.js NPM包管理器

本文介绍了NPM(Node包管理器)的基本使用方法,包括如何安装、更新、卸载模块,以及如何利用NPM管理项目的依赖关系。

  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提供了很多命令,例如installpublish,使用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>');
现在,当运行应用程序的时候,它将在原文件中找到库并将其包含在应用程序中,通常要我们使用这个模块,所以我们将其赋予一个变量。


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

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、应用程序的依赖关系存储在一个地方

关于这个的具体用法,我会在后面的文章中进一步介绍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值