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. Git中从远程的分支获取最新的版本到本地

    Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge    git fetch origin mastergit l ...

  2. 关于UPdate用法的

    updaterestore_base  set  restore_base.localcost =(select   localcost  from    [nt2000\cpi].chongia2. ...

  3. html5 中的 css样式单 的 两种调用方式的区别

    在 html5 中 使用 css 样式单的方式 有4种: 1.链接外部样式文件:将样式文件 彻底与 html 文档分离,样式文件需要额外引入,这种情况下 一批样式 可以控制多份文档.对于好多文件都共有 ...

  4. php100视频教程解压密码

    php100-75-vip.rar 解压密码:php100-18293-2938-2839-348-#php100-76_u.rar 解压密码:php100-18634-6254-1001-283-# ...

  5. [CF Round #295 div2] C. DNA Alignment 【观察与思考0.0】

    题目链接:C. DNA Alignment 题目大意就不写了,因为叙述会比较麻烦..还是直接看英文题面吧. 题目分析 经过观察与思考,可以发现,构造的串 T 的每一个字符都与给定串 S 的每一个字符匹 ...

  6. [BZOJ 1011] [HNOI2008] 遥远的行星 【近似解】

    题目链接: BZOJ - 1011 题目分析 这道题的特别之处在于,答案可以有5%的误差. 嗯..So? 我还是不会,于是看题解. 神犇的题解就是利用这误差范围求一个近似解. 怎么求近似解呢?假如 g ...

  7. window下的php安装redis扩展

    本实验建立在redis服务器已经安装成功的条件下.安装redis扩展需要以下步骤: 1.打开php.ini文件,并找到该段代码:extension=php_redis.dll,并去掉前面的#好,如果没 ...

  8. keil 工程中多文件编译时全局变量怎么引用

    由于代码较多时,为了代码的工整以及易读性,往往将代码拆分成模块,并书写头文件.但keil中定义全局变量往往是一件头疼的事情. (1)xx.h文件中基本书写的是管脚定义和函数声明,全局变量不能定义在头文 ...

  9. Spark、Shark集群安装部署及遇到的问题解决

    1.部署环境 OS:Red Hat Enterprise Linux Server release 6.4 (Santiago) Hadoop:Hadoop 2.4.1 Hive:0.11.0 JDK ...

  10. 《Effective C++》条款26 防卫潜伏的ambiguity模棱两可的状态

    每个人都有思想.有些人相信自由经济学,有些人相信来生.有些人甚至相信COBOL是一种真正的程序设计语言.C++也有一种思想:它认为潜在的二义性不是一种错误.ambiguity 这是潜在二义性的一个例子 ...