利用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 相关文章推荐
js 获取radio按钮值的实例
Aug 17 Javascript
使用js完成节点的增删改复制等的操作
Jan 02 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
Dec 14 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 Javascript
vue2.0 axios前后端数据处理实例代码
Jun 30 Javascript
关于 angularJS的一些用法
Nov 29 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
Jan 27 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 Javascript
p5.js临摹旋转爱心
Oct 23 Javascript
基于原生JS封装的Modal对话框插件的示例代码
Sep 09 Javascript
vue实现登陆页面开发实践
May 30 Vue.js
基于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开发的8个技巧小结
2010/12/17 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
window.open的功能全解析
2006/10/10 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
python创建临时文件夹的方法
2015/07/06 Python
python 内置函数filter
2017/06/01 Python
tensorflow获取变量维度信息
2018/03/10 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
django 消息框架 message使用详解
2019/07/22 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
医学实习生自我鉴定
2013/12/12 职场文书
便利店的创业计划书
2014/01/15 职场文书
优秀教师获奖感言
2014/01/31 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
基督教婚礼主持词
2014/03/14 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
人生感悟经典句子
2019/08/20 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js
详解PyTorch模型保存与加载
2022/04/28 Python