Fast Node Manager(Node.js 版本管理工具)
由 Rust 开发,支持跨平台(macOS、Windows、Linux),通过官方二进制文件安装 Node.js 版本,可快速切换不同项目所需的 Node 版本。安装方式包括使用 Winget(Windows 包管理器)或下载fnm 压缩包后配置环境变量。
之前需要维护两个不同的项目,一个是需要用到 node 14 的 Vue2 项目,另一个是 node 16 的 Vue3 项目,需要通过工具切换 node 版本。
以下均为windows环境下powershell的命令。
下载和解压
fnm页面:Releases · Schniz/fnm
下载版本:fnm-windows.zip
#下载fnm
Invoke-WebRequest -Uri "https://github.com/Schniz/fnm/releases/download/v1.38.1/fnm-windows.zip" -OutFile "fnm-windows.zip"
# 定义 fnm 的安装目录
$fnmInstallDir = "D:\fnm"
# 创建目录 (如果不存在)
New-Item -ItemType Directory -Path $fnmInstallDir -Force
# 解压下载的 zip 文件到安装目录
Expand-Archive -Path "fnm-windows.zip" -DestinationPath $fnmInstallDir -Force
Write-Host "fnm 已解压到 $fnmInstallDir"
# 检查 fnm.exe 是否存在
Get-ChildItem -Path $fnmInstallDir\fnm.exe设置fnm.exe的环境变量
# 获取当前的 User PATH
$currentUserPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
# 检查 fnm 的路径是否已在 User PATH 中
if (-not ($currentUserPath -split ';' -contains $fnmInstallDir)) {
# 如果不在,则追加路径 (用分号分隔)
$newPath = $currentUserPath + ";" + $fnmInstallDir
# 设置永久的 User PATH (注意:这会修改你的系统设置)
[System.Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
Write-Host "'$fnmInstallDir' 已添加到你的永久 User PATH。"
Write-Host "你需要 **重启** PowerShell 或 CMD 窗口 (或者重启电脑) 才能让这个更改完全生效。"
# 同时更新当前 PowerShell 会话的 PATH,以便立即使用 fnm
$env:Path += ";$fnmInstallDir"
Write-Host "PATH 已为当前会话更新。"
} else {
Write-Host "'$fnmInstallDir' 已经在你的永久 User PATH 中了。"
# 如果需要,也确保当前会话包含它
if (-not ($env:Path -split ';' -contains $fnmInstallDir)) {
$env:Path += ";$fnmInstallDir"
Write-Host "PATH 已为当前会话更新。"
}
}配置 PowerShell 以使用 fnm
# 确保 PowerShell 配置文件存在
if (-not (Test-Path $PROFILE)) {
New-Item -Path $PROFILE -ItemType File -Force
}
# 定义要添加到配置文件的命令
$fnmInitCommand = 'fnm env --shell powershell | Invoke-Expression'
# 检查是否已存在
$profileContent = Get-Content $PROFILE -Raw
if (-not ($profileContent -like "*fnm env --shell powershell*")) {
# 添加 fnm 初始化命令到配置文件末尾
Add-Content -Path $PROFILE -Value "`n# FNM initialization`n$fnmInitCommand"
Write-Host "fnm 初始化命令已添加到你的 PowerShell 配置文件 ($PROFILE)."
Write-Host "请执行下面的命令来在当前会话中激活 fnm,或者重启 PowerShell:"
Write-Host $fnmInitCommand
} else {
Write-Host "fnm 初始化命令已在你的 PowerShell 配置文件中找到。"
}
# 在当前会话中立即执行初始化 (这样你就可以马上使用 fnm 了)
Invoke-Expression -Command $fnmInitCommand使用fnm
#验证安装(可能需要重启 PowerShell)
fnm --version
#切换到 Node 14
fnm use 14.21.3
node -v #应该显示 14.21.3
#切换到 Node 16
fnm use 16.15.1
node -v #应该显示 16.15.1
#查看列表和当前激活的版本 (通常带星号或标记)
fnm list
评论区