技术调研-nvm 替换为 fnm
背景
昨天在逛node 官网的时候,发现下载页面多了一fnm的包管理器;
于是,我开始研究一下。 发现它与 nvm 相似,但是它同时支持 node 的 arm 平台。也可以说是跨端的。不过它是rust开发的,性能得到进一步提升
官网介绍
- 🌎 跨平台支持(macOS、Windows、Linux)
- ✨ 单文件,轻松安装,即时启动
- 🚀 以速度为中心
- 📂 适用于.node-version 和.nvmrc 文件
🚀 快速、简单的 Node.js 版本管理器,采用 Rust 构建
使用
macOS/Linux
对于 bash、zsh 和 fishshell,有一个自动安装脚本。
首先确保 curl 和 unzip 已安装在您的操作系统上。然后执行:
curl -fsSL https://fnm.vercel.app/install | bash不过我在用macos安装的时候老是拉去不下来,也不清楚是什么问题;我在想既然通过命令自动安装不行,那么就通过 Homebrew 手动安装吧;
安装成功之后 -v 查看版本号。如果有版本那就安装成功了;
brew install fnm执行 install, 同样fnm -v查看是否安装成功;
安装成功之后需要手动设置一下环境配置, 具体的可看shell-setup 配置
eval "$(fnm env --use-on-cd)"windows
fnm默认的安装位置在c盘,由于习惯问题,我将fnm安装在D盘;
winget install Schniz.fnm --location D:\fnm同时将fnm添加到环境变量中;
在用户变量中新建一条:
变量名为:FNM_DIR
变量值为:D:\fnm这个变量是后面安装的node用到的目录,一些缓存值, 所有的node版本以及当前使用的node版本都在这个文件夹中;
在cmd或者powershell中执行
fnm env --use-on-cd | Out-String | Invoke-Expression同样的方式查看是否安装成功; fnm的大部分命令和nvm是一样的,例如:fnm ls, fnm install, fnm use等;
需要注意的是:想要设置全局的 node 版本,需要使用 fnm default 16.14.0,在不同项目不同 node 版本使用fnm use给不同的项目设置不同的 node 版本
