利用n工具轻松管理Node.js的版本


Posted in Javascript onApril 21, 2017

前言

相信对于学习Node.js的小伙伴们都知道,现在 Node 的版本更新很快,目前最新稳定版已经更新到 v7.6.0 了,而生产环境一般选择使用 LTS(Long-term Support)版本,目前最新的是 v6.10.0。

LTS本地下载:点击这里

新版的 Node 7.x.x 有非常有用的更新,那就是支持了 --harmony-async-await。这样就不用依赖 babel 来使用 async/await 特性了。

但是,如何让 7.x.x 和 LTS 的 6.x.x 并存呢?就需要用 Node 版本管理工具了。

之前常用的 Node 版本管理工具是 nvm,这是一个 shell 工具,能够比较方便地切换 Node 版本。

nvm本地下载:点击这里

不过今天我要介绍给大家的是另一款更简单好用的 Node 版本管理工具,它本身是一个 Node 模块,叫做 n,它是由 TJ 大大开发的

n 本地下载:点击这里

强调简单化的版本管理工具:

Node.js version management: no subshells, no profile setup, no convoluted API, just simple.

安装 n

要安装 n 非常简单,它本身是一个 NPM 模块,因此:

npm -g install n

使用和设置

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

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

安装完成多个版本后,直接输入不带参数的 n 命令,会出现一个已安装版本的列表:

利用n工具轻松管理Node.js的版本

用键盘上下键选择版本,然后回车,就可以切换默认 Node 版本。

直接启动不同版本的 Node

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

n use 7.6.0 index.js

于是,我们可以这么用:

async.js

'use strict'

let randomDelay = () => new Promise(function(resolve){
 var delay = Math.round(Math.random() * 1000);
 setTimeout(function(){
 console.log('delay ' + delay + ' ms');
 resolve(delay);
 }, delay);
});

async function main(){
 await Promise.all([randomDelay(), randomDelay()]);
 console.log('pass');
 await randomDelay();
}

main();
n use 7.6.0 async.js

你会看到类似下面这样的输出结果,说明我们不需要 babel,直接可以用 Node 7.6.0 支持 async/await 了。

delay 252 ms
delay 964 ms
pass
delay 536 ms

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

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

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

node7 async.js

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
JavaScript 面向对象编程(1) 基础
May 18 Javascript
JQuery之拖拽插件实现代码
Apr 14 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
JavaScript用Number方法实现string转int
May 13 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
Jan 28 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
微信小程序 同步请求授权的详解
Aug 04 Javascript
详解如何在vue项目中使用lodop打印插件
Sep 27 Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 Javascript
基于jQuery实现文字打印动态效果
Apr 21 #jQuery
ES6新特性三: Generator(生成器)函数详解
Apr 21 #Javascript
Cookies 和 Session的详解及区别
Apr 21 #Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 #Javascript
原生javascript实现分页效果
Apr 21 #Javascript
微信小程序 跳转方式总结
Apr 20 #Javascript
微信小程序 setData的使用方法详解
Apr 20 #Javascript
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
十月份红领巾广播稿
2014/01/22 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
计算机专业自荐信
2014/05/24 职场文书
个人安全生产责任书
2014/07/28 职场文书
2015年教师节慰问信
2015/03/23 职场文书
现场施工员岗位职责
2015/04/11 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android