利用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 相关文章推荐
HTML代码中标签的全部属性 中文注释说明
Mar 26 Javascript
jquery ready()的几种实现方法小结
Jun 18 Javascript
JavaScript使用yield模拟多线程的方法
Mar 19 Javascript
JavaScript操作DOM元素的childNodes和children区别
Apr 01 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
详解easyui基于 layui.laydate日期扩展组件
Jul 18 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
js设置鼠标悬停改变背景色实现详解
Jun 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
一个数据采集类
2007/02/14 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
vuex存储token示例
2019/11/11 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Django实现图片文字同时提交的方法
2015/05/26 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python @property的用法及含义全面解析
2018/02/01 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
Scrapy框架使用的基本知识
2018/10/21 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Python字符串的修改方法实例
2019/12/19 Python
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
安全事故检讨书
2014/01/18 职场文书
中秋节主持词
2014/04/02 职场文书
党员公开承诺书内容
2014/05/20 职场文书
企业挂职心得体会
2014/09/10 职场文书
社区元宵节活动总结
2015/02/06 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
执行力心得体会范文
2016/01/11 职场文书
医学会议开幕词
2016/03/03 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python