还在用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团队捆绑了一个安装脚本,使下载软件变得轻而易举,终端使用如下命令一键安装:

bash 复制代码
curl -fsSL https://fnm.vercel.app/install | bash

此外,我们还可以自行安装。

手动安装

可以直接 brew install fnm安装:

bash 复制代码
brew install fnm

但需要配置Shell环境:

# 若自行安装,则需手动添加到 .zshrc 或 .bashrc
eval "$(fnm env --use-on-cd)"

Windows系统

Windows可以通过Winget、Scoop、Chocolatey等工具来安装:

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

然后也需要配置对应的命令行环境。具体的安装过程还是比较繁琐的,这里就不展开了,可以参考文档Windows上使用fnm安裝Node.js

完成后,终端中输入fnm验证是否安装成功。

bash 复制代码
fnm

出现下面这个界面:

代表我们已经成功安装了!

注意 :Windows安装比较麻烦,所以Windows建议使用Linux on Windows with WSL2,能避免非常多的问题,或者继续用nvm-windows。

fnm的使用

安装和卸载

安装指定版本的node:

bash 复制代码
fnm install 16.12.0

安装最新版本的node:

bash 复制代码
fnm install --latest

安装LTS版本的node:

bash 复制代码
fnm install --lts

使用uninstall来卸载指定版本的node:

bash 复制代码
fnm uninstall 16.12.0

查看版本

查看所有可下载的Node版本:

bash 复制代码
fnm ls-remote

查看本地安装的node版本:

bash 复制代码
fnm list

如上,我本地安装了14、16、18三个版本的node。

使用指定版本

设置全局默认版本:

bash 复制代码
fnm default 16.12.0

在当前Shell使用指定版本:

bash 复制代码
fnm use 16.12.0

设置别名

如果我们本地有很多项目,此时,我们就可以借助alias来为特定版本的Node起一个别名,不需要记住多个 Node版本。语法如下:

bash 复制代码
fnm alias <version> <name>

比如:

bash 复制代码
fnm alias 16.12.0 my-project

上面的命令将my-project别名分配给Node版本16.12.0。

结语

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

相关推荐
姚*鸿的博客21 分钟前
pinia在vue3中的使用
前端·javascript·vue.js
宇文仲竹40 分钟前
edge 插件 iframe 读取
前端·edge
Kika写代码43 分钟前
【基于轻量型架构的WEB开发】【章节作业】
前端·oracle·架构
天下无贼!2 小时前
2024年最新版Vue3学习笔记
前端·vue.js·笔记·学习·vue
Jiaberrr2 小时前
JS实现树形结构数据中特定节点及其子节点显示属性设置的技巧(可用于树形节点过滤筛选)
前端·javascript·tree·树形·过滤筛选
赵啸林2 小时前
npm发布插件超级简单版
前端·npm·node.js
罔闻_spider3 小时前
爬虫----webpack
前端·爬虫·webpack
吱吱鼠叔3 小时前
MATLAB数据文件读写:1.格式化读写文件
前端·数据库·matlab
爱喝水的小鼠3 小时前
Vue3(一) Vite创建Vue3工程,选项式API与组合式API;setup的使用;Vue中的响应式ref,reactive
前端·javascript·vue.js
盏灯3 小时前
前端开发,场景题:讲一下如何实现 ✍电子签名、🎨你画我猜?
前端