快速搭建 Node.js 开发环境以及加速 npm
Posted 清明-心若淡定
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速搭建 Node.js 开发环境以及加速 npm相关的知识,希望对你有一定的参考价值。
快速搭建 Node.js 开发环境以及加速 npm
于是我觉得应该写一篇文章解答所有这些起步问题,让新同学也能顺顺利利入门。
快速搭建 Node.js 开发环境
如果你想长期做 node 开发, 或者想快速更新 node 版本, 或者想快速切换 node 版本,
那么请使用 nvm 来安装你的 node 开发环境, 保持系统的干净.
git clone nvm
直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git
目录存放 git 项目:
$ cd ~/git
$ git clone [https://github.com/creationix/nvm.git](https://github.com/creationix/nvm.git)
配置终端启动时自动执行 source ~/git/nvm/nvm.sh
,
在 ~/.bashrc
, ~/.bash_profile
, ~/.profile
, 或者 ~/.zshrc
文件添加以下命令:
source ~/git/nvm/nvm.sh
重新打开你的终端, 输入 nvm
$ nvm
Node Version Manager
Usage:
nvm help Show this message
nvm --version Print out the latest released version of nvm
nvm install [-s] <version> Download and install a <version>, [-s] from source
nvm uninstall <version> Uninstall a version
nvm use <version> Modify PATH to use <version>
nvm run <version> [<args>] Run <version> with <args> as arguments
nvm current Display currently activated version
nvm ls List installed versions
nvm ls <version> List versions matching a given description
nvm ls-remote List remote versions available for install
nvm deactivate Undo effects of NVM on current shell
nvm alias [<pattern>] Show all aliases beginning with <pattern>
nvm alias <name> <version> Set an alias named <name> pointing to <version>
nvm unalias <name> Deletes the alias named <name>
nvm copy-packages <version> Install global NPM packages contained in <version> to current version
Example:
nvm install v0.10.24 Install a specific version number
nvm use 0.10 Use the latest available 0.10.x release
nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24
nvm alias default 0.10.24 Set default node version on a shell
Note:
to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders
通过 nvm 安装任意版本的 node
nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢,
好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:
$ NVM_NODEJS_ORG_MIRROR=[http://dist.u.qiniudn.com](http://dist.u.qiniudn.com/) nvm install 0.11.11
于是你就会看到一段非常快速进度条:
###### ################################################################## 100.0%
Now using node v0.11.11
如果你不想每次都输入环境变量 NVM_NODEJS_ORG_MIRROR
, 那么我建议你加入到 .bashrc
文件中:
# nvm
export NVM_NODEJS_ORG_MIRROR=[http://dist.u.qiniudn.com](http://dist.u.qiniudn.com/)
source ~/git/nvm/nvm.sh
然后你可以继续非常方便地安装各个版本的 node 了, 你可以查看一下你当前已经安装的版本:
$ nvm ls
nvm
v0.8.26
v0.10.26
v0.11.11
-> v0.11.12
使用 cnpm 加速 npm
同理 nvm , npm 默认是从国外的源获取和下载包信息, 不慢才奇怪.
可以通过简单的 ---registry
参数, 使用国内的镜像 http://r.cnpmjs.org :
$ npm --registry=[http://r.cnpmjs.org](http://r.cnpmjs.org/) install koa
于是屏幕又哗啦哗啦地一大片输出:
$ npm --registry=[http://r.cnpmjs.org](http://r.cnpmjs.org/) install koa
npm http GET [http://r.cnpmjs.org/koa](http://r.cnpmjs.org/koa)
npm http 200 [http://r.cnpmjs.org/koa](http://r.cnpmjs.org/koa)
npm http GET [http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz](http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz)
npm http 200 [http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz](http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz)
npm http GET [http://r.cnpmjs.org/escape-html](http://r.cnpmjs.org/escape-html)
npm http GET [http://r.cnpmjs.org/statuses](http://r.cnpmjs.org/statuses)
...
npm http 200 [http://r.cnpmjs.org/negotiator](http://r.cnpmjs.org/negotiator)
npm http 200 [http://r.cnpmjs.org/keygrip](http://r.cnpmjs.org/keygrip)
[[email protected]](mailto:[email protected]) node_modules/koa
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected])
├── [[email protected]](mailto:[email protected]) ([[email protected]](mailto:[email protected]))
└── [[email protected]](mailto:[email protected]) ([[email protected]](mailto:[email protected]))
但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异, 目前 cnpm 的默认同步时间间隔是 15 分钟.
如果你是模块发布者, 或者你想马上同步一个模块, 那么推荐你安装 cnpm cli:
$ npm --registry=[http://r.cnpmjs.org](http://r.cnpmjs.org/) install cnpm -g
通过 cnpm 命令行, 你可以快速同步任意模块:
$ cnpm sync koa connect mocha
呃, 我就是不想安装 cnpm cli 怎么办? 哈哈, 早就想到你会这么懒了, 于是我们还有一个 web 页面:
例如我想马上同步 koa, 直接打开浏览器: http://cnpmjs.org/sync/koa
或者你是命令行控, 通过 open 命令打开:
$ open [http://cnpmjs.org/sync/koa](http://cnpmjs.org/sync/koa)
如果你安装的模块依赖了 C++ 模块, 需要编译, 肯定会通过 node-gyp 来编译,
node-gyp 在第一次编译的时候, 需要依赖 node 源代码, 于是又会去 node dist 下载,
于是大家又会吐槽, 怎么 npm 安装这么慢...
好吧, 于是又要提到 --disturl
参数, 通过七牛的镜像来下载:
$ npm --registry=[http://r.cnpmjs.org](http://r.cnpmjs.org/) --disturl=[http://dist.u.qiniudn.com](http://dist.u.qiniudn.com/) install microtime
再次要提到 cnpm cli, 它已经默认将 --registry
和 --disturl
都配置好了, 谁用谁知道
.
以上是关于快速搭建 Node.js 开发环境以及加速 npm的主要内容,如果未能解决你的问题,请参考以下文章