npm简介
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功:
$ npm -v
5.5.1
npm环境测试没问题 我们可以安装一个第三方包到本地了,
使用
npm install express
使用此命令可以在当前目录下安装express网络服务模块
安装完成后,会显示类似这样的结果:
图中,红色标注 + express@4.16.3 ---代表增加了一个express包,@4.16.3是本次增加express的版本号。那有人会问了,怎么能下载express指定的包版本呢?很简单:npm install express@4.16.3 带上需要下载的版本号即可。
好接着我们看图中我标注的警告部分:“npm WARN saveError ENOENT: no such file or directory, open 'E:\Projects\nodejs\nodejstest-lession\lession5-nodejs-npm\package.json'”。这句警告的意思是 在当前目录里没有找到package.json这个文件,那package.json是什么呢?
其实package.json是对我们本地书写的各个模块进行统一管理的包配置文件。包是在模块的基础上进一步组织管理,我们编写的包当然也是可以发布到网络上,供其它人进行下载和依赖的,就像我们刚刚下载的express包一样,我们只需下载express,并在代码中引用依赖它,我们就可以使用它的全部功能,省去我们自己再重头开发的步骤(你可以把它看成是一种插件)。
那package.json怎么创建呢,它其实就是一个格式良好的普通json文件,我们只需按官方给出的配置规则,创建一个就可以。当然,npm官方也给我们提供了统一的创建package.json方法:在当然目录中输入
npm init
它会暂停并提示你一些信息,先不用管它一路回车,直到package.json创建在你当然选择的目录里为止。
接下来我们做一个这样的操作:
npm uninstall express
执行完毕后 你会发现比刚刚安装快多了,呵呵,这就是 卸载我们之前安装的express包,你可以切换到你的磁盘目录看下,之前下载了一堆的文件夹被删除了。
接下来我们再执行 npm install express 重新安装express,你会发现刚刚那个package.json找不到的警告消失了,所以我们一般在下载包依赖之前最好是在本地先 npm init一下。
使用淘宝的npm镜像 cnpm
大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。首先安装cnpm包,最好把它安装在全局 多了一个 -g命令参数
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
安装成功之后我们就可以使用下面cnpm的方式进行下载安装包了,和npm使用是一致的,且下载速度非常快。
$ cnpm install [name]