[转] 使用NVM快速搭建NODE开发环境
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
本文主要介绍最近自己碰到的几个坑以及搜索到的相应解决方案:
快速搭建 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
配置终端启动时自动执行source ~/git/nvm/nvm.sh
, 在~/.bashrc, ~/.bash_profile, ~/.profile
, 或者~/.zshrc
文件添加以下命令:
source ~/git/nvm/nvm.sh
重新打开你的终端, 输入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`
使用 npm 安装包失败
由于GFW的强大威慑力,npm 好多安装包很慢或者直接安装error,相关解决方法主要有以下三种:
- 通过config命令.
npm config set registry http://registry.cnpmjs.org
npm info underscore (如果上面配置正确这个命令会有字符串response)
- 命令行指定.
npm --registry http://registry.cnpmjs.org info underscore
- 编辑
~/.npmrc
加入下面内容.
registry = http://registry.cnpmjs.org
通过 nvm 安装任意版本的 node
nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢, 好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:
$ NVM_NODEJS_ORG_MIRROR=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
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 install koa
于是屏幕又哗啦哗啦地一大片输出:
$ npm --registry=http://r.cnpmjs.org install koa
npm http GET http://r.cnpmjs.org/koa
npm http 200 http://r.cnpmjs.org/koa
npm http GET 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
npm http GET http://r.cnpmjs.org/escape-html
npm http GET http://r.cnpmjs.org/statuses
...
npm http 200 http://r.cnpmjs.org/negotiator
npm http 200 http://r.cnpmjs.org/keygrip
koa@0.5.2 node_modules/koa
├── koa-compose@2.2.0
├── statuses@1.0.2
├── finished@1.1.1
├── escape-html@1.0.1
├── only@0.0.2
├── debug@0.8.0
├── fresh@0.2.2
├── type-is@1.0.1
├── delegates@0.0.3
├── mime@1.2.11
├── co@3.0.5
├── accepts@1.0.1 (negotiator@0.4.2)
└── cookies@0.4.0 (keygrip@1.0.0)
但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异, 目前 cnpm 的默认同步时间间隔是 15 分钟. 如果你是模块发布者, 或者你想马上同步一个模块, 那么推荐你安装 cnpm cli:
$ npm --registry=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
再次要提到 cnpm cli, 它已经默认将 --registry
和 --disturl
都配置好了, 谁用谁知道. 写到这里, 就更快疑惑那些不想安装 cnpm cli 又吐槽 npm 慢的同学是基于什么考虑不在本地安装一个 cnpm 呢?
访问github 好慢或者github样式错乱
好了, 看到这里大家应该对 node 和 npm 已经没有速度慢的问题了. github 慢, 或者说是它的资源 host 被堵而已, 大家可以通过简单的 hosts 映射解决:
185.31.16.184 github.global.ssl.fastly.net
[转] 使用NVM快速搭建NODE开发环境的更多相关文章
- CentOS 7快速搭建Nodejs开发环境
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.学习Nodejs首先需要会安装环境.这里我介绍如 ...
- Linux下快速搭建php开发环境
php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...
- Windows下快速搭建安卓开发环境android-studio
Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...
- 【IntelliJ IDEA新手入门】IDEA如何快速搭建Java开发环境
作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢? 今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境?那就 ...
- 利用CodeBlocks结合freeglut快速搭建OpenGL开发环境
利用CodeBlocks结合freeglut快速搭建OpenGL开发环境 2018-12-19 10:15:48 再次超越梦想 阅读数 180更多 分类专栏: 我的开发日记 版权声明:本文为博主原 ...
- IDEA如何快速搭建Java开发环境
作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢?今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境? 全局 ...
- 【转】使用nvm快速搭建 Node.js 开发环境
原文链接:http://www.cnblogs.com/shuoer/p/7802891.html 快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本 ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...
- 使用Docker快速搭建PHP开发环境
最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...
随机推荐
- log4j详细配置说明
log4j配置祥解 第一步:加入log4j-1.2.8.jar到lib下.第二步:在CLASSPATH下建立log4j.properties.内容如下:1 log4j.rootCategory=INF ...
- 302重定向,MVC中的Get,Post请求。
1.在访问页遇到重定向,Get,Post跳转处理,在跳转后的页面获取访问端的IP,他们的IP是否发生变化... 2.重定向处理后获取的IP还是访问端IP,而用Get,Post请求处理后,获取的访问端I ...
- SpringMVC源码阅读(一)
DispatcherServlet是整个SpringMVC初始化和处理请求的重要类,作为一个servlet,拥有 public void init(ServletConfig config) thro ...
- Tomcat,Weblogic,WebSphere,JBoss四种服务器简单对比
1,tomcat是Servlet容器,支持JSP.Servlet.JDBC等J2EE关键技术,常用于tomcat开发基于数据库.Servlet和JSP页面的Web应用.2,tomcat不是EJB容器, ...
- Learning LexRank——Graph-based Centrality as Salience in Text Summarization(一)
(1)What is Sentence Centrality and Centroid-based Summarization ? Extractive summarization works by ...
- 基本数据类型的常量池与String类型常量池解析
抛出样例: Integer a1 = new Integer(123); Integer a2 = new Integer(123); System.out.print ...
- new 与override 区别
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Newover ...
- C++ 1
1 new 建立一个堆对象 new 类名(初值列表) 返回一个指针 int * p=new int(3)动态分配 2 delete 释放指针 delete p; delete [] p ;释放动态申 ...
- mac 目录详解
打开Macintosh HD你会发现内中有四个文件夹 分别有——应用程序(Applications).系统(System).用户(User).资料库(Library).四个文件夹中又分别各有若干数量的 ...
- [LeetCode#191]Number of Bits
Problem: Write a function that takes an unsigned integer and returns the number of ’1' bits it has ( ...