fnm:Rust开发的高效Node版本管理工具

简介

fnm 是一个基于 Rust 开发的 Node 版本管理工具,它的目标是提供一个快速、简单且可靠的方式来管理 Node.js 的不同版本。同时,它是跨平台的,支持 macOS、Linux、Windows。🚀 Fast and simple Node.js version manager, built in Rust.

特点

  1. 快速:fnm 使用 Rust 编写,因此它在执行速度上比其他 Node 版本管理工具更快。
  2. 简单:fnm 的命令行接口简单易用,可以轻松地安装、切换和卸载 Node.js 版本。
  3. 可靠:fnm 使用 Node.js 的官方二进制文件来安装 Node.js 版本,因此它是可靠且与官方版本兼容的。

安装

第一种方式:wsl安装
# 初始安装
curl -fsSL https://fnm.vercel.app/install | bash# 后续升级
curl -fsSL https://fnm.vercel.app/install | bash -s -- --skip-shell# ~/.zshrc 修改
# 支持自动根据项目 .nvmrc 文件自动切换版本,使用镜像避免可能存在的 fnm install 问题
- eval "$(fnm env)"
+ eval "$(fnm env --use-on-cd --node-dist-mirror=https://repo.huaweicloud.com/nodejs/)"

复制

第二种方式:直接下载安装

1、下载 fnm.exe,放入 D 盘 D:\fnm,将其目录加入环境变量 path 中

2、使用 powershell 来执行 fnm 命令

3、将以下内容添加到配置文件的末尾

配置文件路径:

fnm env --use-on-cd | Out-String | Invoke-Expression

复制

fnm 使用

用 fnm 安装 Node
# 安装 LTS 版本
$ fnm install --lts# 安装指定大版本的最新版本
$ fnm install 18# 安装指定版本
$ fnm install 18.21.1

复制

相反地,可通过 fnm uninstall <version>fnm uninstall <alias-name> 来删除指定版本,后者会同时移除别名。

通过 fnm 来指定 Node 版本
# 使用系统版本
$ fnm use system# 使用 fnm 所安装,且版本号为 18.21.1 的 Node 程序
$ fnm use 18.21.1# 使用 fnm 所安装,且主版本号为 18 的最新版本的 Node 程序
$ fnm use 18

复制

只要用 fnm use <version> 指定后,每次启动 Shell 将会默认使用对应的 Node 版本。

设置别名
# 形式如:fnm alias <指定版本号> <别名>
$ fnm alias 18.21.1 v18# 设置别名后,可以简化指令为:
$ fnm use v18

复制

常用命令
# 命令帮助
fnm --help# node 已安装列表
fnm list# node 安装
fnm install 版本号(支持模糊/lts)# node 卸载
fnm uninstall 版本号# node 切换
fnm use 版本号# node 设置默认
fnm default 版本号

复制

安装记录

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pycharm-git 配置(1)

1.安装git2.pycharm 中配置git 插件 弹出Git版本号&#xff0c;即配置成功。3.创建本地仓库 VCS->VCS operations->create repository->设置本地目录 左下角可以看到git本地仓库git可以看到push,commit。 4.配置远方仓库&#xff0c;此时确保git上是有这个项目…

【linux】chmod权限开放(整个文件夹)

文章目录 起因权限查看权限修改 失败权限修改成功 起因 想要共享conda环境给同事&#xff0c;发现同事没权限。 权限查看 ls #查看当前目录 ls -l # 查看当前目录的东西和权限正常情况下是显示 三个rwx分别属于user&#xff0c;group&#xff0c;others 前面第一个rwx 是针…

美容预约小程序:简单三步,开启高效预约模式

在当今的数字化时代&#xff0c;一个小程序可以极大地提高美容院的效率和客户满意度。下面我们将详细说明如何通过以下步骤来搭建一个美容院预约小程序。 首先&#xff0c;你需要注册并登录到乔拓云网&#xff0c;这是 一个在线平台&#xff0c;可以帮助你快速创建并管理你的小…

腾讯云服务器,部署mysql数据库后无法远程访问?

一&#xff0c;首先确定自己部署的数据库&#xff0c;是否可以正常登录&#xff0c;验证部署是否是否成功 mysql -u root -p二、放开mysql远程访问权限&#xff0c;依次输入这些命令 create user root% identified with mysql_native_password by xxxxx; grant all privilege…

k8s学习(三十六)centos下离线部署kubernetes1.30(单主节点)

文章目录 服务器准备工作一、升级操作系统内核1 查看操作系统和内核版本2 下载内核离线升级包3 升级内核4 确认内核版本 二、修改主机名/hosts文件1 修改主机名2 修改hosts文件 三、关闭防火墙四、关闭SELINUX配置五、时间同步1 下载NTP2 卸载3 安装4 配置4.1 主节点配置4.2 从…

Mysql8 创建表,按年/月分区存储

一.创建订单表orders &#xff1a; CREATE TABLE orders ( order_id INT NOT NULL, order_date DATE NOT NULL, amount DECIMAL(10, 2) NOT NULL ) PARTITION BY RANGE (YEAR(order_date)) ( PARTITION p0 VALUES LESS THAN (1991), PARTITION p1 VALUES …

LeetCode热题Hot100 - 最长有效括号

一刷~ 给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 思路&#xff1a; 用栈保存最近的一个非有效括号子串的位置&#xff0c;当遇到(时&#xff0c;把当前下标入栈。遇到)时&#xff0c;出栈&#xff0c;出…

DPDK helloworld 解析

1. 学习目的 计划通过学习 DPDK 官方提供的 demo&#xff0c; 对 DPDK API 的使用有一些了解&#xff0c;helloworld 程序是其中最简单的程序&#xff0c;还是实际上手学习能更快一些。 2. 编译 helloworld 源码 环境变量设置&#xff1a; export RTE_SDK/home//dpdk/dpdk-stab…

nn.DataParallel

nn.DataParallel 是 PyTorch 中的一个模块&#xff0c;用于在多个 GPU 上并行运行模型。当有多个 GPU 并且想要利用它们来加速训练或推理时&#xff0c;这个模块会非常有用。nn.DataParallel 通过对模型中的每个子模块进行复制&#xff0c;并将输入数据分割成多个部分&#xff…

C++ iovec结构体

iovec是一个结构体&#xff0c;用于描述一个数据缓冲区。它通常与readv和writev系统调用一起使用&#xff0c;用于在一次系统调用中读取或写入多个缓冲区。 struct iovec {void *iov_base; // 缓冲区起始地址size_t iov_len; // 缓冲区长度 };ssize_t readv(int fd, const str…

Linux sudo suid提权练习

题目比较简单&#xff0c;可以利用sudo和多种suid程序提权&#xff0c;做个记录 进入靶场题目环境 获得节点信息 远程连接上 执行命令id&#xff0c;发现只是admin普通账户 sudo提权 发现存在 /usr/bin/vim, /usr/bin/bash, /usr/bin/more, /usr/bin/less, /usr/bin/nano, /…

计算机java项目|springboot校园一卡通

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、Python项目、前端项目、人工智能与大数据、简…

数据驱动决策的13种思维

第一、信度与效度思维 信度与效度的概念最早来源于调查分析&#xff0c;但现在我觉得可以引申到数据分析工作的各方面。 所谓信度&#xff0c;是指一个数据或指标自身的可靠程度&#xff0c;包括准确性和稳定性取数逻辑是否正确&#xff1f;有没有计算错误&#xff1f;这属于准…

网络爬虫快速入门及爬取百度搜索结果(附源码)

前言 爬虫的基本结构及工作流程 1. 确定目标 首先&#xff0c;确定你想要爬取的目标&#xff0c;包括目标网站或网页、需要提取的数据类型&#xff08;如文本、图片、视频等&#xff09;以及爬取的深度&#xff08;单页、整个网站等&#xff09;。 2. 获取网页内容 使用HT…

AJAX——事件循环(EventLoop)

1.事件循环&#xff08;EventLoop&#xff09; 概念&#xff1a;JavaScript有一个基于事件循环的并发模型&#xff0c;事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。这个模型与其它语言中的模型截然不同&#xff0c;比如C和Java。 原因&#xff1a;JavaScri…

【S32DS RTD实战】-1.5-S32DS使用Post-Build调用第三方插件-自动对生成的s19,Hex,Bin文件二次编辑

<--返回「Autosar_MCAL高阶配置」专栏主页--> 案例背景&#xff1a; 在《【S32DS RTD实战】-1.3-S32K3工程生成S19&#xff0c;BIN&#xff0c;Hex文件&#xff0c;以及Post-build steps的妙用_s32ds如何生成s19或hex文件-CSDN博客https://blog.csdn.net/qfmzhu/articl…

突破编程_C++_网络编程(一种高性能处理 TCP 粘包问题的方法)

1 前言 在“突破编程_C_网络编程&#xff08;Windows 套接字&#xff08;处理 TCP 粘包问题&#xff09;&#xff09;”一文中&#xff0c;已经讲解了 TCP 粘包问题&#xff0c;并且给出了样例代码。但是该样例代码的核心是使用队列&#xff08;std::queue&#xff09;做报文的…

【LeetCode热题100】【多维动态规划】编辑距离

题目链接&#xff1a;72. 编辑距离 - 力扣&#xff08;LeetCode&#xff09; 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 你可以插入、删除、替换字符 定义dp[i][j]是将word1[0:i-1]转换成word2[0:j-1]所使用的最少操作数 如…

Json三方库介绍

目录 Json是干什么的Json序列化代码Json反序列化代码 Json是干什么的 Json是一种轻量级的数据交换格式&#xff0c;也叫做数据序列化方式。Json完全独立于编程语言的文本格式来存储和表述数据。易于人阅读和编写&#xff0c;同时也易于机器解析和生成&#xff0c;并有效地提升…

AcWing 797. 差分——算法基础课题解

AcWing 797. 差分 题目描述 输入一个长度为 n 的整数序列。 接下来输入 m 个操作&#xff0c;每个操作包含三个整数 l,r,c&#xff0c;表示将序列中 [l,r]之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个…