利用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图片无缝滚动(简单利于使用)
Jun 17 Javascript
JavaScript判断密码强度(自写代码)
Sep 06 Javascript
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 Javascript
js实现坦克大战游戏
Feb 24 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
Jul 26 Javascript
处理canvas绘制图片模糊问题
May 11 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中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
js中匿名函数的N种写法
2010/09/08 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
python字符串排序方法
2014/08/29 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
python2 与python3的print区别小结
2018/01/16 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
windows下python安装小白入门教程
2018/09/18 Python
python 字符串只保留汉字的方法
2018/11/16 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
python爬取微信公众号文章的方法
2019/02/26 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
竞选演讲稿范文
2013/12/28 职场文书
股权转让协议书
2014/04/12 职场文书
小学课外活动总结
2014/07/09 职场文书
委托书怎样写
2014/08/30 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python