还在用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。

结语

🔥如果此文对你有帮助的话,欢迎💗关注、👍点赞、⭐收藏✍️评论支持一下博主~  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/260459.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 设置 SpringBoot logback 彩色日志(附配置文件)

1、背景说明 最开始使用 SpringBoot 时&#xff0c;控制台日志是带彩色的&#xff0c;让人眼前一亮&#x1f604; 后来彩色莫名丢失&#xff0c;由于影响不大&#xff0c;一直没有处理。 2、配置彩色 最近找到了解决方法&#xff08;其实是因为自定义 logback.xml&#xff0…

多媒体互动橱窗设计如何改变内容展示形式?

橱窗设计在展品展示中扮演着举足轻重的角色&#xff0c;它相较于传统展示形式&#xff0c;能更直观地呈现展品效果&#xff0c;而且优质的橱窗设计还能提升品牌的产品形象&#xff0c;正因此&#xff0c;也被广泛应用于企业、博物馆、店铺等场所。随着多媒体技术的蓬勃发展和行…

【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用

【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用 前言 跟往期sobol区别&#xff1a; 1.sobol计算依赖于验证集样本&#xff0c;无需定义变量上下限。 2.SW-ELM自带激活函数&#xff0c;计算具有phi&#xff08;x&#xff09;e^x激…

命令执行 [SWPUCTF 2021 新生赛]babyrce

打开题目 我们看到题目说cookie值admin等于1时&#xff0c;才能包含文件 bp修改一下得到 访问rasalghul.php&#xff0c;得到 题目说如果我们get传入一个url且不为空值&#xff0c;就将我们get姿势传入的url的值赋值给ip 然后用正则过滤了 / /&#xff0c;如果ip的值没有 / …

Maven将Jar包打入本地仓库

Maven将Jar包打入本地仓库 Maven将Jar包打入本地仓库嘚吧嘚下载Maven配置Maven新建MAVEN_HOME编辑Path验证Maven配置 Jar包打入Maven仓库 Maven将Jar包打入本地仓库 嘚吧嘚 最近项目用到一个Jar包&#xff0c;不能从远程仓库拉取&#xff0c;只有一个Jar包&#xff0c;所以需…

BSWM 模式管理(二)ESH

BSWM 模式管理 ESH 1 ECU State Handling (ESH)2 BSWM ESH 五大模式与六大通用状态机3 状态机对应的切换条件 conditions or rules4 默认主要的 ACTION 或者 ACTION LIST1 ECU State Handling (ESH) 与 ECUM 相关,整个 ECU 状态管理的状态机制 2 BSWM ESH 五大模式与六大通…

基于 Flink 的典型 ETL 场景实现方案

目录 1.实时数仓的相关概述 1.1 实时数仓产生背景 1.2 实时数仓架构 1.3 传统数仓 vs 实时数仓 2.基于 Flink 实现典型的 ETL 场景 2.1 维表 Join ■ 2.1.1 预加载维表 方案 1&#xff1a; 方案 2&#xff1a; ■ 2.1.2 热存储关联 ■ 2.1.3 广播维表 ■ 2.1.4 Tem…

福建省大数据集团数据应用开发大赛全面升级

更多精彩&#xff0c;请持续关注 点击链接直达大赛官网 福建省大数据集团数据应用开发大赛 (fjbdg.com.cn)

车辆违规开启远光灯检测系统:融合YOLO-MS改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着社会的不断发展和交通工具的普及&#xff0c;车辆违规行为成为了一个严重的问题。其中&#xff0c;车辆违规开启远光灯是一种常见的违规行为&#xff0c;给其…

DBeaver中使用外部格式化程序对进行sql格式化

本文介绍了如何在DBeaver中使用外部格式化程序对sql进行格式化。 一、pgFormatter 1.准备工作 下载地址&#xff1a;https://github.com/darold/pgFormatter/releases/ pgFormatter是perl脚本&#xff0c;所以需要perl运行环境支持。 perl下载地址&#xff1a;https://str…

【力扣100】543.二叉树的直径

添加链接描述 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def __init__(self):self.max 0def diamete…

实现linux与windows进行文件共享

目录 一.展现形式 二.场景需求 三.具体操作 1.windows访问sumba 2.Linux访问sumba 一.展现形式 支持以文件夹的形式可视化操作文件 二.场景需求 1.有一台Linux物理机 2.有一台window物理机 3.Linux已配置好sumba服务器 三.具体操作 1.windows访问sumba 首先按下winR…

PyTorch深度学习实战(26)——卷积自编码器(Convolutional Autoencoder)

PyTorch深度学习实战&#xff08;26&#xff09;——卷积自编码器 0. 前言1. 卷积自编码器2. 使用 t-SNE 对相似图像进行分组小结系列链接 0. 前言 我们已经学习了自编码器 (AutoEncoder) 的原理&#xff0c;并使用 PyTorch 搭建了全连接自编码器&#xff0c;但我们使用的数据…

【C++初阶】第一站:C++入门基础(下)

前言&#xff1a; 紧接着上两篇文章&#xff0c;c入门基础(上)&#xff1a;C入门基础(上) c入门基础(中)&#xff1a;C入门基础(中) 继续补充完c初阶入门基础的知识点&#xff0c;本章知识点包括&#xff1a; 引用和指针的区别、内联函数、auto关键字(C11)、基于范围的for循环…

企业在什么场景下使用Windows活动目录?

Windows活动目录是微软提供的一种集中式身份验证和访问控制服务&#xff0c;它具有许多功能和优势&#xff0c;因此在很多企业中被广泛使用。那么&#xff0c;企业在什么场景下会选择使用Windows活动目录呢&#xff1f; 首先&#xff0c;Windows活动目录适用于中大型企业或组织…

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言&#xff0c;是一种动态类型、弱类型、基于原型继承的语言&#xff0c;内置支持类型。 它的解释器被称为JavaScript引擎&#xff0c;作为浏览器的一部分&#xff0c;广泛用于客户端的脚本语言&#xff0c;用来给HTML网页增加…

【UML】第9篇 类图

目录 一、类图的概念 二、类图的主要作用 三、类图的构成 3.1 类的名称 3.2 抽象类&#xff08;Abstract Class&#xff09; 一、类图的概念 类图是UML模型中静态视图。它用来描述系统中的有意义的概念&#xff0c;包括具体的概念、抽象的概念、实现方面的概念等。静态视…

spring boot集成mybatis和springsecurity实现权限控制功能

上一篇已经实现了登录认证功能&#xff0c;这一篇继续实现权限控制功能&#xff0c;文中代码只贴出来和上一篇不一样的修改的地方&#xff0c;完整代码可结合上一篇一起整理spring boot集成mybatis和springsecurity实现登录认证功能-CSDN博客 数据库建表 权限控制的意思就是根…

PopChar for Mac 特殊字符输入工具

PopChar Popchar表情输入&#xff0c;一款专门输入特殊字符的软件&#xff0c;让查找和输入特殊字符变得简单快捷方便&#xff0c;可以快速搜索查找表情&#xff0c;还可以将经常发的表情进行收藏&#xff0c;方便下次直接发送&#xff0c;让聊天更加充满快乐&#xff01; 资源…

智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.…