使用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 相关文章推荐
js 分栏效果实现代码
Aug 29 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
React-intl 实现多语言的示例代码
Nov 03 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
教你如何编写Vue.js的单元测试的方法
Oct 17 Javascript
JavaScript使用小插件实现倒计时的方法讲解
Mar 11 Javascript
浅谈JS的二进制家族
May 09 Javascript
vue修饰符.capture和.self的区别
Apr 22 Vue.js
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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python判断两个对象相等的原理
2017/12/12 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
python高级特性简介
2020/08/13 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
python性能测试工具locust的使用
2020/12/28 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
物理教育专业求职信
2014/06/25 职场文书
安全生产协议书
2016/03/22 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers