利用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 相关文章推荐
Fastest way to build an HTML string(拼装html字符串的最快方法)
Aug 20 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
Nov 07 Javascript
js+html制作简单验证码
Feb 16 Javascript
canvas绘制一个常用的emoji表情
Mar 30 Javascript
BootStrap TreeView使用实例详解
Nov 01 Javascript
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
vue组件通信传值操作示例
Jan 08 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
微信小程序实现文件预览
Oct 22 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
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python游戏开发的五个案例分享
2020/03/09 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
社区服务标语
2014/07/01 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
雾霾停课通知
2015/04/24 职场文书
法律意见书范文
2015/06/04 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js