安装 Node.js
通过 fnm 安装并管理 Node.js 24 LTS,同时验证 npm 和项目所需的运行环境。
Node.js 用来运行 Saavo 的开发服务器、构建命令和测试,npm 用来安装项目依赖。Saavo 要求 Node.js 22.13.0 或更高版本,推荐使用 Node.js 24 LTS。
本文使用 fnm 管理 Node.js。与直接安装固定版本相比,fnm 更方便升级、切换和清理,也能避免不同项目需要不同 Node.js 版本时互相影响。
本文核对的版本
本文按照 2026 年 8 月的 fnm 1.39.0 编写。Node.js 24(Krypton)目前是 LTS 版本,Node.js 26 仍是 Current 版本。
先检查现有版本
打开终端,运行:
node -v
npm -v
fnm --versionnode -v输出的版本为22.13.0或更高,并且npm -v也能正常输出:现有环境已经满足要求,不必为了使用 fnm 重装 Node.js。- Node.js 版本低于 22.13.0,或者命令不存在:继续安装 fnm 和 Node.js 24。
- 只有
fnm命令不存在:说明当前 Node.js 可能是用其他方式安装的。只要版本符合要求,可以继续使用。
安装 fnm
根据操作系统选择一种方式。
Windows
打开 PowerShell 或 Windows Terminal:
winget install --id Schniz.fnm -e
也可以使用 scoop install fnm、choco install fnm,或从 fnm Releases 下载与你的处理器匹配的版本。几种方式任选一种,不要重复安装。
当前 WinGet 中的 fnm 是便携式软件包,安装时会注册 fnm 命令。安装完成后关闭所有终端窗口,再打开一个新的 PowerShell,运行:
fnm --version能够显示版本号就说明安装已经完成,不需要手动把 fnm 加入 PATH,也不用为了识别 fnm 命令修改 $PROFILE。
macOS
使用 Homebrew 安装:
brew install fnmHomebrew 会安装 fnm 命令,但不会替你修改 Bash 或 Zsh 的启动文件。后面仍要完成 Shell 初始化。
Linux
官方安装脚本需要系统已安装 curl 和 unzip:
curl -fsSL https://fnm.vercel.app/install | bash官方安装脚本会根据 $SHELL 自动修改 ~/.bashrc、~/.zshrc 或 Fish 配置。执行结束后按照终端提示重新打开终端或运行 source 命令即可,不要再重复添加同一段配置。如果脚本无法识别 Shell,或者安装时使用了 --skip-shell,才需要手动配置。
确认 Shell 初始化
这里需要区分两件事:
- 运行
fnm --version,只是在确认终端能找到 fnm 程序; - 运行
node、切换 Node.js 版本以及读取.nvmrc,需要当前 Shell 执行fnm env。
Windows 使用 WinGet 安装后,第一项通常已经自动完成,第二项仍需要 Shell 初始化。macOS 使用 Homebrew 时也需要初始化。Linux 使用官方脚本时通常已经自动写好配置,先检查对应文件,缺少时再添加,不要重复写入。
把与你当前 Shell 对应的初始化命令放到配置文件末尾:
# 添加到 $PROFILE
fnm env --use-on-cd --shell powershell | Out-String | Invoke-ExpressionPowerShell 如果还没有配置文件,可以先创建并打开:
if (-not (Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
notepad $PROFILE保存后关闭所有终端窗口,再重新打开。此时不仅要确认 fnm 命令存在,还要确认 Shell 已经加载 fnm 环境:
fnm --version
fnm current尚未安装 Node.js 时,fnm current 没有版本可显示是正常的。下一步安装并启用 Node.js 后,再用 node -v 做最终确认。
为什么要初始化 fnm 环境
fnm 安装成功后需要初始化 Shell 环境,否则无法正常使用部分 fnm 命令。例如下面就未初始化的情况:

安装 Node.js 24 LTS
执行:
fnm install 24
fnm default 24
fnm use 24三条命令分别负责安装 Node.js 24、把它设为新终端的默认版本,以及立即切换当前终端。fnm 会同时提供该版本自带的 npm,不需要单独安装 npm。
验证 Node.js 和 npm
重新打开终端,再运行:
fnm --version
node -v
npm -vnode -v 应输出 v24.x,npm -v 应输出版本号。具体小版本会随 Node.js 24 的维护版本更新,不必与截图完全一致。

Wrangler 不需要全局安装
Wrangler 已包含在 Saavo 的项目依赖中。项目下载并执行 npm install 后,通过 npx wrangler 使用即可,不要再执行全局安装。Cloudflare 授权方法见上一页的项目安装后登录 Wrangler。
Windows 提示无法加载 npm.ps1
如果 node -v 正常,但在 PowerShell 中运行 npm -v 出现下面的错误:
npm.ps1 cannot be loaded because running scripts is disabled on this system
PSSecurityException
这不表示 npm 安装失败。Node.js 已经附带 npm,只是 PowerShell 执行 npm 时找到了 npm.ps1,而当前执行策略不允许运行 PowerShell 脚本。错误路径中出现 fnm_multishells 也是正常的,这是 fnm 为当前终端提供 Node.js 版本的入口。
先运行下面的命令确认 npm 已经安装:
npm.cmd -v能够输出版本号,就不需要重新安装 Node.js 或 npm。临时使用时,可以在 PowerShell 中明确调用 npm.cmd 和 npx.cmd:
npm.cmd install
npx.cmd wrangler --version如果这是自己的开发电脑,可以先查看各范围的执行策略:
Get-ExecutionPolicy -List然后只为当前用户启用 RemoteSigned:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned确认修改后,关闭 PowerShell 并重新打开,再运行 npm -v 和 npx -v。不要为了省事把整台电脑改成 Unrestricted,也不要永久使用 Bypass。
公司电脑可能由组策略管理
如果 MachinePolicy 或 UserPolicy 已经设置,当前用户的配置可能不会生效。此时继续使用 npm.cmd、改用命令提示符,或联系管理员处理;不要尝试绕过组织的安全策略。
常见问题
- 安装后仍提示找不到
fnm:关闭所有终端窗口再打开。如果仍然无效,检查 fnm 是否已经加入PATH。 fnm能运行,但node仍然不存在:通常是 Shell 初始化命令没有生效。检查$PROFILE、~/.bashrc或~/.zshrc,然后重新打开终端。- 打开新终端后又变回旧版本:执行
fnm default 24,确认 Shell 配置中保留了fnm env --use-on-cd。 - 电脑里有多个 Node.js:Windows 运行
where.exe node,macOS 或 Linux 运行which -a node,检查旧安装是否排在 fnm 前面。