利用n工具轻松管理Node.js的版本

发布时间 - 2026-01-11 00:45:26    点击率:

前言

相信对于学习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 命令,会出现一个已安装版本的列表:

用键盘上下键选择版本,然后回车,就可以切换默认 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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# nodejs  # 版本  # n  # 多版本管理  # nodejs版本管理工具  # 详解使用nvm管理多版本node的方法  # 详解node nvm进行node多版本管理  # nodejs多版本管理总结  # 详解如何使用nvm管理Node.js多版本  # 详解nvm管理多版本node踩坑  # node.js版本管理工具n无效的原理和解决方法  # node版本管理工具n包使用教程详解  # 利用nvm管理多个版本的node.js与npm详解  # mac中利用NVM管理不同node版本的方法详解  # 使用nvm管理不同版本的node与npm的方法  # Windows上node.js的多版本管理工具用法实例分析  # 本地下载  # 点击这里  # 的是  # 是一个  # 我们可以  # 只需要  # 要使  # 就可以  # 它本身  # 稳定版  # 我要  # 多个  # 你会  # 不需要  # 是由  # 可以用  # 这是一个  # 给大家  # 这篇文章  # 谢谢大家 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  bootstrap日历插件datetimepicker使用方法  QQ浏览器网页版登录入口 个人中心在线进入  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  如何挑选最适合建站的高性能VPS主机?  Android滚轮选择时间控件使用详解  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel Docker环境搭建教程_Laravel Sail使用指南  Android GridView 滑动条设置一直显示状态(推荐)  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  EditPlus中的正则表达式 实战(2)  WEB开发之注册页面验证码倒计时代码的实现  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  装修招标网站设计制作流程,装修招标流程?  如何用景安虚拟主机手机版绑定域名建站?  jquery插件bootstrapValidator表单验证详解  如何获取PHP WAP自助建站系统源码?  昵图网官方站入口 昵图网素材图库官网入口  Laravel如何处理和验证JSON类型的数据库字段  Laravel如何为API生成Swagger或OpenAPI文档  如何在万网自助建站中设置域名及备案?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  如何在阿里云完成域名注册与建站?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  微信公众帐号开发教程之图文消息全攻略  Laravel如何处理文件下载请求?(Response示例)  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何快速选择适合个人网站的云服务器配置?  如何基于PHP生成高效IDC网络公司建站源码?  在Oracle关闭情况下如何修改spfile的参数  如何在IIS服务器上快速部署高效网站?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel中的Facade(门面)到底是什么原理  清除minerd进程的简单方法  如何快速生成高效建站系统源代码?  Laravel如何使用Eloquent进行子查询  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  文字头像制作网站推荐软件,醒图能自动配文字吗?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何快速查询网址的建站时间与历史轨迹?  深入理解Android中的xmlns:tools属性