Windows 系统中 fnm 安装与配置指南
2026年1月24日 18:42
Windows 系统中 fnm 安装与配置指南
本文档介绍如何在 Windows 系统中安装 fnm (Fast Node Manager) 并配置 CMD、PowerShell 和 PowerShell 7 终端以自动加载 Node.js 环境。
前提条件
- Windows 10 或更高版本
- 已安装 WinGet(Windows 包管理器)
安装 fnm
使用 WinGet 安装 fnm:
winget install Schniz.fnm
配置终端
1. 配置 PowerShell 7
PowerShell 7 使用独立的配置文件路径。需要创建以下配置文件:
# 创建 PowerShell 7 配置目录
New-Item -ItemType Directory -Path "$env:USERPROFILE\Documents\PowerShell" -Force
# 创建配置文件
New-Item -ItemType File -Path "$env:USERPROFILE\Documents\PowerShell\Microsoft.PowerShell_profile.ps1" -Force
在配置文件中添加以下内容:
fnm env --use-on-cd | Out-String | Invoke-Expression
可以通过以下命令一次性完成:
New-Item -ItemType Directory -Path 'C:\Users\leehoo\Documents\PowerShell' -Force
Set-Content -Path 'C:\Users\leehoo\Documents\PowerShell\Microsoft.PowerShell_profile.ps1' -Value 'fnm env --use-on-cd | Out-String | Invoke-Expression'
2. 配置 Windows PowerShell
Windows PowerShell 使用以下配置文件路径:
C:\Users\leehoo\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
如果文件不存在,创建它并添加以下内容:
fnm env --use-on-cd | Out-String | Invoke-Expression
3. 配置 CMD
CMD 没有配置文件机制,需要通过注册表设置 AutoRun。
步骤 1:生成 fnm 初始化脚本
fnm env --use-on-cd --shell cmd | ForEach-Object { '@' + $_ } | Out-File -FilePath "$env:APPDATA\fnm\fnm-init.cmd" -Encoding ASCII
步骤 2:设置注册表 AutoRun
reg add 'HKCU\Software\Microsoft\Command Processor' /v AutoRun /t REG_SZ /d "call $env:APPDATA\fnm\fnm-init.cmd" /f
验证配置
PowerShell 7 / Windows PowerShell
重新打开 PowerShell 终端,运行:
node --version
npm --version
CMD
重新打开 CMD 终端,运行:
node -v
npm -v
常用 fnm 命令
# 列出已安装的 Node.js 版本
fnm list
# 安装 Node.js 版本
fnm install 20.10.0
# 切换 Node.js 版本
fnm use 20.10.0
# 设置默认版本
fnm default 20.10.0
# 卸载版本
fnm uninstall 20.10.0
注意事项
- 每次修改配置后,需要重新打开终端才能生效
-
--use-on-cd选项会在切换目录时自动检测并使用对应的 Node.js 版本(基于 .nvmrc 或 package.json) - CMD 的 AutoRun 设置会影响所有 CMD 窗口
- 如果需要移除 CMD 的 AutoRun 设置,运行:
reg delete 'HKCU\Software\Microsoft\Command Processor' /v AutoRun /f
配置文件位置总结
| 终端 | 配置文件路径 |
|---|---|
| PowerShell 7 | C:\Users\leehoo\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 |
| Windows PowerShell | C:\Users\leehoo\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 |
| CMD | 注册表:HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
|
| fnm 初始化脚本 | C:\Users\leehoo\AppData\Roaming\fnm\fnm-init.cmd |
故障排除
CMD 中显示命令输出
如果 CMD 启动时显示 SET 命令,确保 fnm-init.cmd 文件每行都以 @ 开头:
@SET PATH=...
@SET FNM_MULTISHELL_PATH=...
Node.js 命令不可用
- 确认 fnm 已正确安装:
fnm --version - 确认已安装 Node.js 版本:
fnm list - 检查配置文件路径是否正确
- 重新打开终端
PowerShell 配置不生效
- 检查配置文件是否存在
- 运行
$PROFILE查看当前配置文件路径 - 手动加载配置:
. $PROFILE