什么是 NPM
Node 包管理器 (npm) 是一个由 Node.js 官方提供的第三方包管理工具,就像 PHP、Pear、Python 的 PyPI 一样。npm 是一个完全由 JavaScript 实现的命令行工具,通过 Node.js 执行,因此严格来讲它不属于 Node.js 的一部分。在最初的版本中,我们需要在安装完 Node.js 以后手动安装 npm。但从 Node.js 0.6 开始,npm 已包含在发行包中了,安装 Node.js 时会自动安装 npm。
NPM 用途
npm 的背后,是基于 couchdb 的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。
NPM 在国内
虽说 npm 很方便,但是在国内由于网络原因,使用 npm 下载一些依赖包的时候,速度还是很慢,甚至有时候还要翻墙,大大影响了我们的开发效率。那么,是否有解决方案呢,答案是有的,那就是淘宝 npm 镜像。
什么是淘宝 NPM 镜像
淘宝的npm镜像是一个完整的 npmjs.org 镜像。你可以用此代替官方版本(只读),同步频率目前为10分钟一次以保证尽量与官方服务同步,官网截图如下。
淘宝 NPM 镜像安装及使用
安装
- 可以使用淘宝 npm 镜像定制的
cnpm
(gzip 压缩支持) 命令行工具代替默认的npm
:
1 | $ npm install -g cnpm --registry=https://registry.npm.taobao.org |
- 或者直接通过添加
npm
参数 alias 一个新命令:
1 | alias cnpm="npm --registry=https://registry.npm.taobao.org \ |
使用
- 安装模块
从 registry.npm.taobao.org
安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 npm 会自动在后台进行同步, 并且会让你从官方 NPM registry.npmjs.org
进行安装. 下次你再安装这个模块的时候, 就会直接从淘宝 npm 安装了。
1 | $ cnpm install [name] |
- 同步模块
直接通过 sync
命令马上同步一个模块, 只有 cnpm
命令行才有此功能:
1 | $ cnpm sync connect |
当然, 你可以直接通过 web
方式来同步: /sync/connect
1 | $ open https://npm.taobao.org/sync/connect |
- 其他模块
支持 npm
除了 publish
之外的所有命令, 如:
1 | $ cnpm info connect |
当然,还可以这样安装和使用
如果你不想用 cnpm
,或许你可以直接修改 npm
config配置的 registry
,来使用淘宝 npm 镜像:
安装
1 | npm config set registry https://registry.npm.taobao.org |
接着 config ls 一下:
1 | npm config ls -l |
使用
1 | $ npm install [name] |
好了,现在开发者再一次解放出来(不用担心安装管理包时的速度问题)。