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

结语

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

相关推荐
AI前端老薛5 分钟前
CSS实现动画的几种方式
前端·css
携欢9 分钟前
portswigger靶场之修改序列化数据类型通关秘籍
android·前端·网络·安全
GuMoYu9 分钟前
npm link 测试本地依赖完整指南
前端·npm
代码老祖10 分钟前
vue3 vue-pdf-embed实现pdf自定义分页+关键词高亮
前端·javascript
未等与你踏清风10 分钟前
Elpis npm 包抽离总结
前端·javascript
代码猎人11 分钟前
如何使用for...of遍历对象
前端
秋天的一阵风12 分钟前
🎥解决前端 “复现难”:rrweb 录制回放从入门到精通(下)
前端·开源·全栈
林恒smileZAZ13 分钟前
【Vue3】我用 Vue 封装了个 ECharts Hooks
前端·vue.js·echarts
颜酱13 分钟前
用填充表格法-继续吃透完全背包及其变形
前端·后端·算法
代码猎人14 分钟前
new操作符的实现原理是什么
前端