使用nvm和nrm优化node.js工作流的方法


Posted in Javascript onJanuary 17, 2019

对于一个 Web 开发从业人员的电脑,node.js 和它的 npm 包管理工具那是少不了的,但是 node.js 的更新速度是非常快的,而生产环境一般选择使用 LTS(Long-term Support)版本,如何高效切换 node.js 的版本呢?对,使用 nvm。

使用 nvm

首先安装 nvm(github),使用官方文档的方法安装:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

或者使用Wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

然后可以下面的配置放入你的系统环境变量的文件中(通常安装过程中已经自动添加了),通常是这个文件就是 .bash_profile,在你的用户名文件夹下:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

好了,这时候直接输入 nvm 这个命令会出现 nvm: command not found,这是需要重新启动一下你的命令行工具就行了。

重新之后,我就可以使用它来管理我们的 node.js 的版本了。

安装最新版 node.js:

nvm install node

列出可以安装的 node.js 的版本:

nvm ls-remote

安装 node.js 某个具体版本,比如常用的 6.10.0:

nvm install v6.10.0

安装最新版,稳定版,lts 版本

nvm install node
nvm install stable
nvm install lts/*

安装 Node 新版本的同时,从另外一个仓库重新安装以前的包

nvm install node --reinstall-packages-from=v6.10.0

列出电脑中目前安装的所有的 node.js 的版本:

nvm list

看到了所有的可用的版本号,我们来切换版本:

nvm use v7.7.1

好了,熟悉这行常用命令已经够用了。但是,对于国内用户,还有个问题未解决,就是包管理工具 npm,经常安装一些包时会因为网络问题会出错,这是英文安装源是在国外服务器,现在我们想切换安装源的地址怎么办?对,使用 nrm。

使用 nrm

首先全局安装 nrm:

npm install -g nrm

安装完后就可以立即使用了,我们来列出可用的源:

nrm ls

会发现列出了下面几个源:

npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
taobao - https://registry.npm.taobao.org/
nj ----- https://registry.nodejitsu.com/
rednpm - http://registry.mirror.cqupt.edu.cn/
npmMirror  https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/

当然这里我们选择国内淘宝的源:

nrm use taobao

好了一切大功告成!

更简单的 Node 版本管理工具 n

另一款更简单好用的 Node 版本管理工具,它本身是一个 Node 模块,叫做 n.

安装 n 非常简单:

npm -g install n

要使用 n 安装特定版本的 node,只需要如下命令:

n stable #安装最新的稳定版
n lts #安装最新的 LTS 版
n 6.9.0 #安装特定的 v6.9.0 版本

安装完成多个版本后,直接输入不带参数的 n 命令,会出现一个已安装版本的列表,用键盘上下键选择版本,然后回车,就可以切换默认 Node 版本。

假如我们将默认的 Node 版本设置为 6.10.0 了,而我们要使用 7.6.0 启动某个应用,也非常简单,只需要:

n use 7.6.0 index.js

最后,我们可以创建一个快捷的命令:

echo alias node7="\"n use 7.6.0 --harmony-async-await\"" >> ~/.bashrc
source ~/.bashrc

这样我们就可以愉快地使用 node v7.x.x 运行我们的 js 了:

node7 index.js

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JSChart轻量级图形报表工具(内置函数中文参考)
Oct 11 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
利用javascript实现全部删或清空所选的操作
May 27 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
JavaScript Serializer序列化时间处理示例
Jul 31 Javascript
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
JavaScript 作用域链解析
Nov 13 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
微信小程序自定义组件
Aug 16 Javascript
Angular5集成eventbus的示例代码
Jul 19 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 #Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 #Javascript
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 #Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 #Javascript
如何能分清npm cnpm npx nvm
Jan 17 #Javascript
JavaScript设计模式之装饰者模式实例详解
Jan 17 #Javascript
npm 常用命令详解(小结)
Jan 17 #Javascript
You might like
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
javaScript基础详解
2017/01/19 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
webpack写jquery插件的环境配置
2017/12/21 jQuery
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python人脸识别初探
2017/12/21 Python
python正则表达式之对号入座篇
2018/07/24 Python
详解如何设置Python环境变量?
2019/05/13 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
免税水晶:Duty Free Crystal
2019/05/13 全球购物
六十岁生日答谢词
2014/01/10 职场文书
学校七一活动方案
2014/01/19 职场文书
个人授权委托书范本
2014/04/03 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书