利用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 相关文章推荐
setTimeout和setInterval的浏览器兼容性分析
Feb 27 Javascript
jQuery开发者都需要知道的5个小技巧
Jan 08 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
通过DOM脚本去设置样式信息
Sep 19 Javascript
JQuery判断HTML元素是否存在的两种解决方法
Dec 26 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
JavaScript定时器实现的原理分析
Dec 06 Javascript
JS实现简单抖动效果
Jun 01 Javascript
简述Angular 5 快速入门
Nov 04 Javascript
Vue.js 事件修饰符的使用教程
Nov 01 Javascript
JavaScript的级联函数用法简单示例【链式调用】
Mar 26 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
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
Python3学习urllib的使用方法示例
2017/11/29 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
python实现复制文件到指定目录
2019/10/16 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
工程监理应届生求职信
2013/11/09 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
护理专业自荐书
2014/06/04 职场文书
简单租房协议书范本
2014/08/20 职场文书
2015年校长新年寄语
2014/12/08 职场文书
企业工会工作总结2015
2015/05/13 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
离职信范本
2015/06/23 职场文书
nginx配置之并发频次限制
2022/04/18 Servers