export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

本文主要介绍最近自己碰到的几个坑以及搜索到的相应解决方案:

  • 如何快速搭建 Node.js 开发环境.
  • 使用 npm 安装一些包速度很慢或者失败.
  • github 无法打开或者样式错乱.

快速搭建 Node.js 开发环境

如果你想长期做 node 开发, 或者想快速更新 node 版本, 或者想快速切换 node 版本, 那么请使用 nvm 来安装你的 node 开发环境, 保持系统的干净.

git clone nvm

直接从 github clone nvm 到本地, 这里假设大家都使用~/git目录存放 git 项目:

  1. $ cd ~/git
  2. $ git clone https://github.com/creationix/nvm.git

配置终端启动时自动执行source ~/git/nvm/nvm.sh, 在~/.bashrc, ~/.bash_profile, ~/.profile, 或者~/.zshrc文件添加以下命令:

  1. source ~/git/nvm/nvm.sh

重新打开你的终端, 输入nvm

  1. Node Version Manager
  2. Usage:
  3. nvm help Show this message
  4. nvm --version Print out the latest released version of nvm
  5. nvm install [-s] <version> Download and install a <version>, [-s] from source
  6. nvm uninstall <version> Uninstall a version
  7. nvm use <version> Modify PATH to use <version>
  8. nvm run <version> [<args>] Run <version> with <args> as arguments
  9. nvm current Display currently activated version
  10. nvm ls List installed versions
  11. nvm ls <version> List versions matching a given description
  12. nvm ls-remote List remote versions available for install
  13. nvm deactivate Undo effects of NVM on current shell
  14. nvm alias [<pattern>] Show all aliases beginning with <pattern>
  15. nvm alias <name> <version> Set an alias named <name> pointing to <version>
  16. nvm unalias <name> Deletes the alias named <name>
  17. nvm copy-packages <version> Install global NPM packages contained in <version> to current version
  18. Example:
  19. nvm install v0.10.24 Install a specific version number
  20. nvm use 0.10 Use the latest available 0.10.x release
  21. nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24
  22. nvm alias default 0.10.24 Set default node version on a shell
  23. Note:
  24. to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders`

使用 npm 安装包失败

由于GFW的强大威慑力,npm 好多安装包很慢或者直接安装error,相关解决方法主要有以下三种:

  • 通过config命令.
  1. npm config set registry http://registry.cnpmjs.org
  2. npm info underscore (如果上面配置正确这个命令会有字符串response)
  • 命令行指定.
  1. npm --registry http://registry.cnpmjs.org info underscore
  • 编辑~/.npmrc加入下面内容.
  1. registry = http://registry.cnpmjs.org

通过 nvm 安装任意版本的 node

nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢, 好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:

  1. $ NVM_NODEJS_ORG_MIRROR=http://dist.u.qiniudn.com nvm install 0.11.11

于是你就会看到一段非常快速进度条:

  1. ######################################################################## 100.0%
  2. Now using node v0.11.11

如果你不想每次都输入环境变量 NVM_NODEJS_ORG_MIRROR, 那么我建议你加入到 .bashrc 文件中:

  1. # nvm
  2. export NVM_NODEJS_ORG_MIRROR=http://dist.u.qiniudn.com
  3. source ~/git/nvm/nvm.sh

然后你可以继续非常方便地安装各个版本的 node 了, 你可以查看一下你当前已经安装的版本:

  1. $ nvm ls
  2. nvm
  3. v0.8.26
  4. v0.10.26
  5. v0.11.11
  6. -> v0.11.12

使用 cnpm 加上 npm

同理 nvm , npm 默认是从国外的源获取和下载包信息, 不慢才奇怪. 可以通过简单的 ·---registry· 参数, 使用国内的镜像 http://r.cnpmjs.org :

  1. $ npm --registry=http://r.cnpmjs.org install koa

于是屏幕又哗啦哗啦地一大片输出:

  1. $ npm --registry=http://r.cnpmjs.org install koa
  2. npm http GET http://r.cnpmjs.org/koa
  3. npm http 200 http://r.cnpmjs.org/koa
  4. npm http GET http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz
  5. npm http 200 http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz
  6. npm http GET http://r.cnpmjs.org/escape-html
  7. npm http GET http://r.cnpmjs.org/statuses
  8. ...
  9. npm http 200 http://r.cnpmjs.org/negotiator
  10. npm http 200 http://r.cnpmjs.org/keygrip
  11. koa@0.5.2 node_modules/koa
  12. ├── koa-compose@2.2.0
  13. ├── statuses@1.0.2
  14. ├── finished@1.1.1
  15. ├── escape-html@1.0.1
  16. ├── only@0.0.2
  17. ├── debug@0.8.0
  18. ├── fresh@0.2.2
  19. ├── type-is@1.0.1
  20. ├── delegates@0.0.3
  21. ├── mime@1.2.11
  22. ├── co@3.0.5
  23. ├── accepts@1.0.1 (negotiator@0.4.2)
  24. └── cookies@0.4.0 (keygrip@1.0.0)

但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异, 目前 cnpm 的默认同步时间间隔是 15 分钟. 如果你是模块发布者, 或者你想马上同步一个模块, 那么推荐你安装 cnpm cli:

  1. $ npm --registry=http://r.cnpmjs.org install cnpm -g

通过 cnpm 命令行, 你可以快速同步任意模块:

  1. $ cnpm sync koa connect mocha

呃, 我就是不想安装 cnpm cli 怎么办? 哈哈, 早就想到你会这么懒了, 于是我们还有一个 web 页面: 例如我想马上同步 koa, 直接打开浏览器: http://cnpmjs.org/sync/koa 或者你是命令行控, 通过 open 命令打开:

  1. $ open http://cnpmjs.org/sync/koa

再次要提到 cnpm cli, 它已经默认将 --registry--disturl 都配置好了, 谁用谁知道. 写到这里, 就更快疑惑那些不想安装 cnpm cli 又吐槽 npm 慢的同学是基于什么考虑不在本地安装一个 cnpm 呢?

访问github 好慢或者github样式错乱

好了, 看到这里大家应该对 node 和 npm 已经没有速度慢的问题了. github 慢, 或者说是它的资源 host 被堵而已, 大家可以通过简单的 hosts 映射解决:

  1. 185.31.16.184 github.global.ssl.fastly.net

[转] 使用NVM快速搭建NODE开发环境的更多相关文章

  1. CentOS 7快速搭建Nodejs开发环境

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.学习Nodejs首先需要会安装环境.这里我介绍如 ...

  2. Linux下快速搭建php开发环境

    php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...

  3. Windows下快速搭建安卓开发环境android-studio

    Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...

  4. 【IntelliJ IDEA新手入门】IDEA如何快速搭建Java开发环境

    作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢? 今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境?那就 ...

  5. 利用CodeBlocks结合freeglut快速搭建OpenGL开发环境

    利用CodeBlocks结合freeglut快速搭建OpenGL开发环境 2018-12-19 10:15:48 再次超越梦想 阅读数 180更多 分类专栏: 我的开发日记   版权声明:本文为博主原 ...

  6. IDEA如何快速搭建Java开发环境

    作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢?今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境? 全局 ...

  7. 【转】使用nvm快速搭建 Node.js 开发环境

    原文链接:http://www.cnblogs.com/shuoer/p/7802891.html 快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本 ...

  8. 五分钟用Docker快速搭建Go开发环境

    挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...

  9. 使用Docker快速搭建PHP开发环境

    最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...

随机推荐

  1. Java实现Http服务器(四)

    (1)HTTPServer的监听启动 sun.net.httpserver.ServerImpl类中启动了Socket监听,ServerImpl的内部类Dispatch类启动了Http服务器的监听 / ...

  2. 字符串搜索算法Boyer-Moore

    整理日: 2015年2月16日 1. 主要特征 假设文本串text长度为n,模式串pattern长度为m,BM算法的主要特征为: 从右往左进行比较匹配(一般的字符串搜索算法如KMP都是从从左往右进行匹 ...

  3. GNOME Shell叫板Ubuntu Unity:优劣PK

    转自GNOME Shell叫板Ubuntu Unity:优劣PK GNOME Shell 对阵 Ubuntu Unity--默认桌面界面的战火一触即发.双方在台上已经对峙了很长时间,现在是时候决定谁会 ...

  4. flat ui switch 改变状态而不响应事件

    Flat UI是一套精美的扁平风格 UI 工具包,基于 Twitter Bootstrap实现.这套界面工具包含许多基本的和复杂的 UI 部件,例如按钮,输入框,组合按钮,复选框,单选按钮,标签,菜单 ...

  5. codeforces #268 div2 D

    对于这道题第一感觉是图论相关然后我们先分析,假设a[i]在A集合需要的元素是a[x],在B集合是a[y]那么假设a[i]在A集合,那必然a[x]也必须在A集合,由于a[y]如果在B集合就没有对应元素, ...

  6. css3倒影

    使用CSS3制作倒影 img { -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from ...

  7. PHP按最大宽高等比例缩放图片类

    本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修 ...

  8. js或者cs代码拼接html

    一:使用到的jQuery 文档操作方法 html() 设置或返回匹配的元素集合中的 HTML 内容. append() 向匹配元素集合中的每个元素结尾插入由参数指定的内容. empty() 删除匹配的 ...

  9. 双11不再孤单,结识ECharts---强大的常用图表库

    又是一年双十一,广大单身狗们有没有很寂寞(好把,其实我也是)!但是这次的双十一,我不再孤单,因为结识了一个js的强大的图表库---ECharts. 最近做软件工程项目的时候,由于设计图中有柱状图和饼图 ...

  10. 折腾iPhone的生活——我的越狱插件精品筛选

    威锋上有人说的好,iOS系统越狱是为了装更多东西,安卓Root是为了删更多东西.   插件 众所周知,iOS系统是非常封闭的,基本上涉及到底层的功能在iOS上都不能实现,除非越狱装插件,所以插件就成为 ...