[转] 使用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构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...
随机推荐
- 原生js实现tab选项卡里内嵌图片滚动特效代码
<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8&quo ...
- 关于mysql授权账号权限时的空密码问题
-root ~]$ mysql -uroot -p Enter password:ERROR 1045 (28000): Access denied for user ‘root’@'localhos ...
- Eclipse中Android公共库的正确建立及调用方法
Eclipse中Android公共库的正确建立及调用方法 引言 之前一直头痛于没有办法在多个程序中共享资源,用作公共类库的方法也是使用的导出jar再导入的办法,现在终于初步搞明白了,可算解脱了~,分享 ...
- 使用maven profile实现多环境可移植构建
mvn clean package -Pproduction即构建出生产环境需要的war包 mvn tomcat:redeploy -Ptest 即发布到测试环境 在开发过程中,我们的软件会面对不同的 ...
- c++重载、覆盖和隐藏
看以前的:http://www.cnblogs.com/youxin/p/3305688.html 答案:a.成员函数被重载的特征:overload(1)相同的范围(在同一个类中):(2)函数名字相同 ...
- python换行写入文件
今天用python做写入文件时,碰到,写入的东西不能换行,打开写入的文件都是一行.后来发现需要在写入的字符后面加上+'\n'. 另外python需要追加写入文件的时候,是用这个方法f = open(' ...
- 低压差稳压器AMS1585
(1)高效线性稳压. (2)输出高达4.6A,最高输入电压15V,推荐最低压差1.5V(最低1.35V),最大压差12V. (3)两种封装:TO220(直插式),TO230(贴片). 典型电路如下图所 ...
- Hibernate(九)一对多双向关联映射
上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在 ...
- bzoj 1188 [HNOI2007]分裂游戏(SG函数,博弈)
1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 733 Solved: 451[Submit][Status ...
- [转载]jQuery.extend 函数详解
JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解. 一.Jquery的扩展方 ...