阅读视图

发现新文章,点击刷新页面。

Windows 系统中 fnm 安装与配置指南

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

注意事项

  1. 每次修改配置后,需要重新打开终端才能生效
  2. --use-on-cd 选项会在切换目录时自动检测并使用对应的 Node.js 版本(基于 .nvmrc 或 package.json)
  3. CMD 的 AutoRun 设置会影响所有 CMD 窗口
  4. 如果需要移除 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 命令不可用

  1. 确认 fnm 已正确安装:fnm --version
  2. 确认已安装 Node.js 版本:fnm list
  3. 检查配置文件路径是否正确
  4. 重新打开终端

PowerShell 配置不生效

  1. 检查配置文件是否存在
  2. 运行 $PROFILE 查看当前配置文件路径
  3. 手动加载配置:. $PROFILE
❌