前言fnm 是什么?

fnm: Fast and simple Node.js version manager, built in Rust.

类似 nvmnnvs 这些一样,fnm 也是用来管理本地的 Node.js 版本的:

  • 当 Node.js 发布新版本后,希望能一键升级,并快速切换。

  • 不同的应用目录希望能使用特定 Node.js 版本。

fnm 的特点是:

  • 跨平台,支持 macOS、Windows、Linux。

  • 使用 Rust 编写,速度快。发布为单文件,便于安装。

  • 支持按应用自动切换 Node.js 版本。

fnm: Fast and simple Node.js version manager, built in Rust.github.com/Schniz/fnm


如何安装?

macOS 和 Linux 系统

# 一键安装
$ curl -fsSL https://fnm.vercel.app/install | bash

macOS 也可以直接 brew install fnm安装,但需要配置 Shell 环境:

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

Windows 系统

可以直接访问 Releases 下载对应的 exe 文件,也可以通过 Scoop 或 Chocolatey 等工具来安装。 然后也需要配置对应的命令行环境,参考文档来配置对应的 CMD、PowerShell、WSL2 等终端。

建议开发者尽量在 Windows 下使用 Linux on Windows with WSL2,能避免非常多的问题。

更多安装方式参见官方文档


使用指南

QuickStart

# 1. 安装最新的 LTS 版本
$ fnm install --lts
Installing Node v18.12.1 (arm64)

# 2. 设置为全局默认版本
$ fnm default 18

# 3. 尽情使用吧~
$ node -v

PS:永远记得不要安装单数版本,尽量用最新的 LTS 版本


常用指令

# 安装其他版本
$ fnm install 16

# 在当前 Shell 使用指定版本
$ fnm use 16

# 查看本地已安装的版本
$ fnm ls

# 查看官方已发布的所有版本
$ fnm ls-remote | grep v16

# 速度慢的时候,可以切换到国内源
$ fnm install 16 --node-dist-mirror=https://npmmirror.com/mirrors/node

使用不同的版本

  • 设置全局默认版本:

# 设置为全局默认版本
$ fnm default 18
  • 在当前 Shell 使用指定版本:

# 在当前 Shell 使用指定版本
$ fnm use 16
  • 使用指定版本来执行某个全局命令:

# 使用指定版本来执行某个全局命令
$ fnm exec --using=18 node -v
  • 在特定目录自动切换版本,也可以提交到源码库方便协作。

# 在应用目录写入文件,指定特定版本
$ echo '16' > .node-version