利用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 相关文章推荐
JavaScript DOM 添加事件
Feb 14 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 Javascript
js两种拼接字符串的简单方法(必看)
Sep 02 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
Cocos2d实现刮刮卡效果
Dec 20 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
vue以组件或者插件的形式实现throttle或者debounce
May 22 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
May 09 Javascript
vue 授权获取微信openId操作
Nov 13 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 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
用ODBC的分页显示
2006/10/09 PHP
PHP 编程安全性小结
2010/01/08 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
JavaScript prototype属性使用说明
2010/05/13 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
javascript jq 弹出层实例
2013/08/25 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
js实现随机抽奖
2020/03/19 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
python二叉树的实现实例
2013/11/21 Python
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
python实现猜拳小游戏
2020/04/05 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
美丽的现代设计家具:2Modern
2018/07/26 全球购物
商场促销活动方案
2014/02/08 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
军事博物馆观后感
2015/06/05 职场文书
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript