还在用nvm?来试试更快的node版本管理工具——fnm
前言
📫 大家好,我是南木元元,热衷分享有趣实用的文章,希望大家多多支持,一起进步!
🍅 个人主页:南木元元
目录
什么是node版本管理
常见的node版本管理工具
fnm是什么
安装fnm
macOS和Linux系统
使用脚本
手动安装
Windows系统
fnm的使用
安装和卸载
查看版本
使用指定版本
设置别名
结语
什么是node版本管理
Node.js是一个开源的、跨平台的 JavaScript 运行时环境,允许我们将js代码运行在服务端,在前端开发中具有十分重要的地位。
在计算机上安装 Node.js 时,通常会直接到nodejs官网进行下载安装,但是这会存在两个问题:
- node的版本迭代是很快的,必须定期检查更新是否可用,并且每次有更新可用时,都必须卸载旧版本重新安装新版本的node,会浪费时间和精力。
- 一台电脑上不能同时安装不同版本的node,这在某些情况下是个问题,例如,某个项目依赖于Node v16,而另一个应用使用Node v18
。
这就需要我们使用node版本管理工具,实现轻松地在node版本之间进行切换。
常见的node版本管理工具
如今市场上其实存在很多的node版本管理工具,比如nvm、n、nvs等,其中当属nvm最为流行。记得在2021年的时候,我也写过一篇nvm的安装和使用,时过境迁,nvm虽好,但是也有一些缺点:
- 下载
Node版本,速度较慢。 - 无法跨平台,在
window环境需要nvm-windows库,并且这个库不受官方支持。
而这些,fnm——也就是我们今天的主角,都能很好地解决。
fnm是什么
🚀 快速简单的 Node.js 版本管理器,用 Rust 构建。
下图来自fnm官网:

fnm的特点是:
- 跨平台支持(macOS、Windows、Linux)
- 使用 Rust 编写,速度快。
- 单文件,轻松安装,即时启动。
安装fnm
macOS和Linux系统
使用脚本
fnm团队捆绑了一个安装脚本,使下载软件变得轻而易举,终端使用如下命令一键安装:
curl -fsSL https://fnm.vercel.app/install | bash
此外,我们还可以自行安装。
手动安装
可以直接 brew install fnm安装:
brew install fnm
但需要配置Shell环境:
# 若自行安装,则需手动添加到 .zshrc 或 .bashrc
eval "$(fnm env --use-on-cd)"
Windows系统
Windows可以通过Winget、Scoop、Chocolatey等工具来安装:

也可以直接去发布页面下载对应的exe文件。

然后也需要配置对应的命令行环境。具体的安装过程还是比较繁琐的,这里就不展开了,可以参考文档或Windows上使用fnm安裝Node.js。
完成后,终端中输入fnm验证是否安装成功。
fnm
出现下面这个界面:

代表我们已经成功安装了!
注意:Windows安装比较麻烦,所以Windows建议使用Linux on Windows with WSL2,能避免非常多的问题,或者继续用nvm-windows。
fnm的使用
安装和卸载
安装指定版本的node:
fnm install 16.12.0
安装最新版本的node:
fnm install --latest
安装LTS版本的node:
fnm install --lts
使用uninstall来卸载指定版本的node:
fnm uninstall 16.12.0
查看版本
查看所有可下载的Node版本:
fnm ls-remote

查看本地安装的node版本:
fnm list

如上,我本地安装了14、16、18三个版本的node。
使用指定版本
设置全局默认版本:
fnm default 16.12.0
在当前Shell使用指定版本:
fnm use 16.12.0
设置别名
如果我们本地有很多项目,此时,我们就可以借助alias来为特定版本的Node起一个别名,不需要记住多个 Node版本。语法如下:
fnm alias <version> <name>
比如:
fnm alias 16.12.0 my-project
上面的命令将my-project别名分配给Node版本16.12.0。
结语
🔥如果此文对你有帮助的话,欢迎💗关注、👍点赞、⭐收藏、✍️评论,支持一下博主~
相关文章:
还在用nvm?来试试更快的node版本管理工具——fnm
前言 📫 大家好,我是南木元元,热衷分享有趣实用的文章,希望大家多多支持,一起进步! 🍅 个人主页:南木元元 目录 什么是node版本管理 常见的node版本管理工具 fnm是什么 安装fnm …...
【Hadoop精讲】HDFS详解
目录 理论知识点 角色功能 元数据持久化 安全模式 SecondaryNameNode(SNN) 副本放置策略 HDFS写流程 HDFS读流程 HA高可用 CPA原则 Paxos算法 HA解决方案 HDFS-Fedration解决方案(联邦机制) 理论知识点 角色功能 元数据持久化 另一台机器就…...
企业需要哪些数字化管理系统?
企业需要哪些数字化管理系统? ✅企业引进管理系统肯定是为了帮助整合和管理大量的数据,从而优化业务流程,提高工作效率和生产力。 ❌但是,如果各个系统之间不互通、无法互相关联数据的话,反而会增加工作量和时间成本…...
【vue】开发常见问题及解决方案
有一些问题不限于 Vue,还适应于其他类型的 SPA 项目。 1. 页面权限控制和登陆验证页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的。如果一个页…...
飞天使-k8s知识点3-卸载yum 安装的k8s
要彻底卸载使用yum安装的 Kubernetes 集群,您可以按照以下步骤进行操作: 停止 Kubernetes 服务: sudo systemctl stop kubelet sudo systemctl stop docker 卸载 Kubernetes 组件: sudo yum remove -y kubelet kubeadm kubectl…...
ZooKeeper 集群搭建
文章目录 ZooKeeper 概述选举机制搭建前准备分布式配置分布式安装解压缩并重命名配置环境配置服务器编号配置文件 操作集群编写脚本运行脚本搭建过程中常见错误 ZooKeeper 概述 Zookeeper 是一个开源的分布式服务协调框架,由Apache软件基金会开发和维护。以下是对Z…...
Meson:现代的构建系统
Meson是一款现代化、高性能的开源构建系统,旨在提供简单、快速和可读性强的构建脚本。Meson被设计为跨平台的,支持多种编程语言,包括C、C、Fortran、Python等。其目标是替代传统的构建工具,如Autotools和CMake,提供更简…...
【大模型AIGC系列课程 5-2】视觉-语言大模型原理
重磅推荐专栏: 《大模型AIGC》;《课程大纲》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经验分享,旨在…...
震惊!难怪别人家的孩子越来越聪明,原来竟是因为它
前段时间工作调动给孩子换了个新学校,刚开始担心她不能适应新学校的授课方式,但任课老师对她评价很高,夸她上课很专注。 为了训练孩子的专注力,作为家长可没少下功夫,画画,下五子棋等益智游戏的兴趣班没少…...
Linux操作系统(UMASK+SUID+SGID+STICK)
UMASK反掩码 如何查看反掩码:直接在终端窗口运行 umask root用户反掩码:0022 普通用户反掩码:0002 UMASK的作用:确定目录,文件的缺省权限值 以root身份创建目录,观察目录的9位权限值 以root身份创建普通文件…...
Java 中单例模式的常见实现方式
目录 一、什么是单例模式? 二、单例模式有什么作用? 三、常见的创建单例模式的方式 1、饿汉式创建 2、懒汉式创建 3、DCL(Double Checked Lock)双检锁方式创建 3.1、synchronized 同步锁的基本使用 3.2、使用 DCL 中存在的疑…...
【C语言】自定义类型之联合和枚举
目录 1. 前言2. 联合体2.1 联合体类型的声明2.2 联合体的特点2.3 相同成员的结构体和联合体对比2.4 联合体大小的计算2.4 判断当前机器的大小端 3. 枚举3.1 枚举类型的声明3.2 枚举类型的优点3.3 枚举类型的使用 1. 前言 在之前的博客中介绍了自定义类型中的结构体,…...
使用Mosquitto/python3进行MQTT连接
一、简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。 …...
JavaWeb笔记之前端开发HTML
一、引言 1.1HTML概念 网页,是网站中的一个页面,通常是网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,网站就是由网页组成的。通常我们看到的网页都是以htm或html后缀结尾的文件,俗称 HTML文件。 …...
通过IP地址定位解决被薅羊毛问题
随着互联网的普及,线上交易和优惠活动日益增多,这也为一些不法分子提供了可乘之机。他们利用技术手段,通过大量注册账号或使用虚假IP地址进行异常操作,以获取更多的优惠或利益,这种行为被称为“薅羊毛”。对于企业和平…...
Leetcode 122 买卖股票的最佳时机 II
题意理解: 已知:一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格 如何哪个时间点买入,哪个时间点卖出,多次交易,能够收益最大化 目的:收益最大化 解题思路: 使用贪心…...
音频文件合成
音频文件合成 音频文件合成 http://ffmpeg.org/download.html https://blog.csdn.net/u013314786/article/details/89682800 http://www.360doc.com/content/19/0317/01/10519289_822112563.shtml https://chaijunkun.blog.csdn.net/article/details/116491526?spm1001.210…...
20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞
20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞 2023/12/20 17:19 简略步骤:rootrootrootroot-X99-Turbo:~/3TB$ tar --use-compress-programpigz -xvpf rk3399-android-10.git-20210201.tgz rootrootro…...
vivo 容器平台资源运营实践
作者:vivo 互联网服务器团队 - Chen Han 容器平台针对业务资源申请值偏大的运营问题,通过静态超卖和动态超卖两种技术方案,使业务资源申请值趋于合理化,提高平台资源装箱率和资源利用率。 一、背景 在Kubernetes中,容…...
ASP.NET Core面试题之Redis高频问题
🎈🎈在.NET后端开发岗位中,如今也少不了、微服务、分布式、高并发高可用相关的面试题🎈🎈 👍👍本文分享一些整理的Redis高频面试题🎉 👍👍机会都是给有准备…...
BG3ModManager:博德之门3模组管理终极指南,告别模组冲突烦恼![特殊字符]
BG3ModManager:博德之门3模组管理终极指南,告别模组冲突烦恼!🚀 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModMa…...
Web技术为何称王?五大核心优势碾压原生应用,一文读懂现代Web的统治力
本文深入剖析Web技术(涵盖H5、PWA及现代Web App)相对于原生APP的五大核心优势:跨平台低成本、免安装热更新、无缝分发能力、技术生态与标准演进、AI融合前景。通过详实的数据对比与技术架构拆解,揭示为什么Web依然是数字世界的终极…...
告别编译地狱!树莓派4B上快速部署face_recognition库的三种方法(含OpenCV轻量安装)
树莓派4B人脸识别开发环境快速部署指南 每次在树莓派上配置人脸识别开发环境,最让人头疼的就是漫长的编译等待和层出不穷的依赖问题。特别是OpenCV这个计算机视觉领域的"瑞士军刀",完整编译动辄需要数小时,稍有不慎就会前功尽弃。本…...
Fast-GitHub:3个技巧让国内开发者告别GitHub龟速时代
Fast-GitHub:3个技巧让国内开发者告别GitHub龟速时代 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾经因为Gi…...
魔兽争霸3现代兼容性终极解决方案:WarcraftHelper深度优化指南
魔兽争霸3现代兼容性终极解决方案:WarcraftHelper深度优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为经典即时战略…...
别再让Future.get()拖慢你的并发程序!手把手教你用CompletionService优化Java任务结果获取
解锁Java并发新姿势:CompletionService如何让任务结果获取效率翻倍 想象一下这样的场景:你精心设计的线程池正在处理一批耗时各异的任务,有的像闪电般完成,有的却像老牛拉车。当你用Future.get()逐个获取结果时,系统却…...
一键批量下载网易云音乐FLAC无损音乐:Golang高效解决方案
一键批量下载网易云音乐FLAC无损音乐:Golang高效解决方案 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac 你是否曾梦想拥有一个完整的无损…...
终极免费跨平台Steam创意工坊下载器:告别重复购买,轻松获取1000+游戏模组
终极免费跨平台Steam创意工坊下载器:告别重复购买,轻松获取1000游戏模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic Games Store或GOG…...
KeymouseGo完全指南:5分钟掌握桌面自动化终极工具
KeymouseGo完全指南:5分钟掌握桌面自动化终极工具 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 你是否厌倦了…...
3分钟快速上手:SillyTavern如何让你成为AI聊天高手
3分钟快速上手:SillyTavern如何让你成为AI聊天高手 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否厌倦了千篇一律的AI对话界面?想要一个能真正理解你需求、支…...
