使用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 相关文章推荐
jQuery each()方法的使用方法
Mar 18 Javascript
window.requestAnimationFrame是什么意思,怎么用
Jan 13 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
Jul 29 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 Javascript
分享javascript计算时间差的示例代码
Mar 19 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
js实现统计字符串中特定字符出现个数的方法
Aug 02 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
react中的ajax封装实例详解
Oct 17 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
Aug 17 Javascript
JS实现轮播图效果
Jan 11 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漏洞全解(详细介绍)
2012/11/13 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
php如何连接sql server
2015/10/16 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
28个JS验证函数收集
2010/03/02 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
面试常见的js算法题
2017/03/23 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python3处理文件中每个词的方法
2015/05/22 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python切片索引用法示例
2018/05/15 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
NumPy统计函数的实现方法
2020/01/21 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
大一自我鉴定范文
2013/12/27 职场文书
关于人生的感言
2014/01/17 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
焦裕禄观后感
2015/06/03 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书