本文针对fnm工具安装Node.js时遇到的下载问题,提供了详细解决方案。
主要问题源于国外服务器访问慢,建议切换至国内镜像源(如清华大学镜像站)。
提供Windows、macOS/Linux的配置方法,通过设置环境变量实现。
若fnm未安装,推荐使用PowerShell脚本或手动下载安装,并强调必须添加PATH环境变量。
对于网络访问问题,给出手动下载GitHub发布的fnm.exe方案。
最后指导验证安装、配置镜像源及安装Node.js的完整流程,特别提醒Windows用户注意路径设置和终端重启。
为fnm配置镜像源
官网的Node.js非Docker版本可以正常下载,fnm等工具也有对应的资源。出现"无法下载"或"无对应资源"的提示,是因为它们默认从国外服务器获取文件,在国内访问速度可能很慢或不稳定。
要解决此问题,最有效的方法是更换软件镜像源,从国内更快的镜像服务器下载Node.js。
为fnm配置镜像源
你可以通过设置一个环境变量,将fnm的下载源切换到国内的镜像站(如清华大学开源镜像站),这样能大大提升下载速度。
根据你的操作系统,在终端或命令行中执行以下命令:
Windows (在PowerShell或CMD中执行):
powershell
# 设置fnm镜像源
$env:FNM_NODE_DIST_MIRROR="https://mirrors4.tuna.tsinghua.edu.cn/nodejs-release/"
# 然后正常使用fnm安装版本,例如
fnm install 20
macOS 或 Linux (在Terminal中执行):
bash
# 设置fnm镜像源(临时有效)
export FNM_NODE_DIST_MIRROR="https://mirrors4.tuna.tsinghua.edu.cn/nodejs-release/"
# 然后正常使用fnm安装版本,例如
fnm install 20
提示 :上面的
export命令只在当前终端窗口有效。若想永久生效,可以将这行命令添加到你的Shell配置文件(如~/.bashrc,~/.zshrc或~/.profile)中,然后重启终端。
其他安装途径
如果你只是想快速获取Node.js进行开发,除了使用版本管理器,也可以选择以下更直接的方式:
-
从官网手动下载 :直接访问 Node.js 官网下载页 ,选择合适的安装包(如Windows的
.msi安装程序或macOS的.pkg安装包。如果下载缓慢,可以稍等一会儿,或尝试在网络较好的时段操作。 -
通过系统包管理器安装 :例如在macOS上可以使用
brew install node,或在Ubuntu上使用apt install nodejs。但这种方式安装的版本可能不是最新,且不便于管理多个版本。
两种方案如何选择?
为了帮你快速决定,可以参考这个对比:
| 方案 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| 配置fnm镜像源 | 一劳永逸,后续所有版本安装都很快 | 需要执行一行命令 | 强烈推荐,尤其是需要管理多个Node.js版本的开发者 |
| 官网手动下载 | 一次性操作,无需配置 | 每次安装新版本都需重新下载 | 仅需快速安装单一、长期使用的Node.js版本 |
总的来说,如果你打算长期开发且需要灵活切换Node.js版本,配置fnm的镜像源是最佳方案。
针对Windows系统 、使用最新LTS Node.js版本的详细配置步骤
配置镜像源
方法一和二中,选择最适合你的一个即可。通常情况下,方法一(临时设置) 适合测试或偶尔使用,方法二(永久配置) 是更推荐的做法。
| 配置方法 | 作用范围 | 操作场景 |
|---|---|---|
| 方法一:临时设置 | 当前终端会话 | 仅当前窗口有效,关闭后失效。适合快速测试。 |
| 方法二:设置系统变量 | 全局永久有效 | 配置后对所有终端生效,一劳永逸。 |
方法一:临时设置(适合快速测试)
在打开的 PowerShell 或 CMD 中,直接运行以下命令来设置镜像变量,然后再安装Node.js:
powershell
# 设置镜像源变量(这里以腾讯云镜像为例)
$env:FNM_NODE_DIST_MIRROR="https://mirrors.tencent.com/nodejs-release/"
# 然后安装最新的LTS版本
fnm install --lts
方法二:设置系统环境变量(推荐,永久生效)
这是最常用的方法,配置一次即可。
-
打开系统属性:在Windows搜索栏输入"环境变量",选择"编辑系统环境变量"。
-
新建系统变量:点击"环境变量" -> 在"系统变量"区域点击"新建"。
-
变量名 :
FNM_NODE_DIST_MIRROR -
变量值:选择一个镜像地址填入,例如:
-
腾讯云镜像:
https://mirrors.tencent.com/nodejs-release/ -
npmmirror(淘宝镜像):
https://npmmirror.com/mirrors/node/ -
兰州大学镜像:
https://mirrors.lzu.edu.cn/nodejs-release/
-
-
-
保存并生效 :点击所有"确定"按钮保存。务必重新启动你的终端(PowerShell或CMD),让新的环境变量生效。
配置完成后,打开新的PowerShell或CMD窗口,直接执行安装命令即可:
powershell
fnm install --lts
命令会自动下载并安装当前最新的Node.js LTS版本。
验证与使用
安装完成后,你可以通过以下命令验证:
| 命令 | 作用 | 预期结果示例 |
|---|---|---|
fnm current |
查看当前激活的Node.js版本 | v20.17.0 (版本号可能不同) |
node --version |
验证Node.js命令是否可用 | 同上 |
npm --version |
验证npm是否随Node.js一同安装成功 | 显示对应的npm版本号 |
设置默认版本(避免每次重启终端需手动切换)
powershell
fnm default 20 # 将20.x系列的最新版本设为默认,请根据实际安装版本调整
其他补充
-
如果镜像不生效 :请再次确认终端是否以管理员身份运行(某些情况下需要),或者尝试重启电脑使环境变量彻底生效。
-
获取最新LTS版本号 :你也可以先通过
fnm list-remote命令列出所有远程版本,找到标有(LTS)的最新版本号,然后用fnm install <具体版本号>安装。
按照以上步骤操作,你应该就能顺利地在Windows上通过fnm快速安装Node.js了。
C:\Users\86178>fnm install --lts 'fnm' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
正确安装 fnm 工具
📦 第一步:安装 fnm(Node.js 版本管理器)
由于你使用的是 Windows 系统,推荐通过以下方式之一安装。任选一种即可:
1. 使用 Windows 包管理器 winget (推荐,最简单)
以管理员身份 打开 PowerShell 或 终端 (Terminal),然后执行:
powershell
winget install Schniz.fnm
2. 使用安装脚本
同样以管理员身份 打开 PowerShell,然后执行:
powershell
# 此命令会自动下载并安装 fnm
curl -fsSL https://fnm.vercel.app/install | bash
注:如果提示
winget或curl命令不存在,说明你的系统版本较旧或未包含这些工具。你可以访问 fnm 的 GitHub 发布页面,手动下载.msi安装包进行安装。
⚙️ 第二步:将 fnm 添加到系统环境变量
安装完成后,为了让 fnm 命令在任意终端中可用,必须将其安装目录添加到系统的 PATH 环境变量中。这是解决问题的关键。
具体步骤:
-
在 Windows 搜索框输入 "编辑系统环境变量" 并打开。
-
点击下方 "环境变量(N)..." 按钮。
-
在 "系统变量" 区域,找到并选中名为
Path的变量,点击 "编辑"。 -
点击 "新建",然后添加一条新路径。根据你的安装方式,路径通常是以下之一:
-
如果你使用
winget或脚本安装 :添加%USERPROFILE%\.fnm -
如果你手动安装了
.msi包 :路径可能是C:\Users\你的用户名\AppData\Roaming\fnm或安装时指定的目录。
-
-
点击所有 "确定" 按钮保存。
-
非常重要 :完全关闭你当前的命令行窗口(CMD/PowerShell) ,然后重新打开一个新的 。这样新的
PATH设置才会生效。
✅ 第三步:验证安装并配置镜像源
打开新的命令行窗口后,按顺序执行以下步骤:
-
验证 fnm 是否安装成功:
powershell
fnm --version如果显示版本号(如
1.x.x),则说明安装成功。 -
按照之前的指引,配置 fnm 的镜像源(以腾讯云为例):
powershell
# 设置环境变量(只对当前窗口有效,测试用) $env:FNM_NODE_DIST_MIRROR="https://mirrors.tencent.com/nodejs-release/" # 如果想永久生效,请按照之前的方法将其添加为“系统环境变量” -
安装最新的 Node.js LTS 版本:
powershell
fnm install --lts
🔍 故障排查
如果上述步骤后问题依旧,请检查:
-
是否以管理员身份运行了安装命令。
-
添加的
PATH路径是否完全正确(特别是.fnm文件夹是否存在)。 -
在完成
PATH修改后,是否重启了命令行窗口。
PS C:\Users\86178> winget install Schniz.fnm 尝试更新源失败: winget "msstore"源要求在使用前查看以下协议。 Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction 源要求将当前计算机的 2 个字母的地理区域发送到后端服务才能正常工作,(例如"US")。
替代方案:使用 PowerShell 安装脚本 (推荐)
这是官方推荐且目前最可靠的方法。请以管理员身份运行 PowerShell,然后逐行执行以下命令:
powershell
# 1. 允许执行远程脚本(执行后选 Y 或 A)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 2. 下载并执行 fnm 安装脚本
curl -fsSL https://fnm.vercel.app/install | bash
# 3. 安装完成后,将 fnm 添加到当前会话的 PATH 中
# 这行命令通常是安装脚本最后输出的,如果下面这行不生效,请尝试安装脚本最后一行提示的命令
& "C:\Users\86178\.fnm\fnm.exe" env --shell powershell | Invoke-Expression
执行完以上命令后,立即在新的 PowerShell 窗口中测试:
powershell
fnm --version
如果显示版本号(如 1.x.x),则安装成功。
📥 备用方案:手动下载安装
如果脚本安装不成功,可以手动下载安装:
-
下载安装包:
-
找到最新的
.msi安装包(例如fnm-windows-x64.msi)并下载。
-
运行安装程序:
- 双击下载的
.msi文件,像安装普通软件一样完成安装。
- 双击下载的
-
验证安装:
- 安装完成后,重新打开一个 PowerShell 窗口 ,输入
fnm --version查看是否成功。
- 安装完成后,重新打开一个 PowerShell 窗口 ,输入
⚙️ 安装后的关键步骤 (无论用哪种方法安装)
安装成功后,必须将 fnm 的路径添加到系统 PATH 环境变量中 ,以确保永久可用。这是你之前遇到 'fnm' 不是内部或外部命令 的根本原因。
添加 PATH 的步骤 (非常重要!):
-
在 Windows 搜索框输入 "编辑系统环境变量" 并打开。
-
点击下方 "环境变量"。
-
在 "系统变量" 区域,找到并选中
Path,点击 "编辑"。 -
点击 "新建",然后添加 fnm 的安装路径。根据你的安装方式,路径通常是:
-
脚本安装 :
C:\Users\86178\.fnm -
手动安装 (MSI) :可能类似
C:\Users\86178\AppData\Roaming\fnm
-
-
点击所有 "确定" 保存。
-
关闭所有 PowerShell/CMD 窗口,再重新打开一个新的。
✅ 最终验证与配置
完成上述所有步骤后,在新终端中按顺序执行:
-
验证命令 :
fnm --version(应显示版本) -
配置镜像源 (以腾讯云为例,复制并执行):
powershell
$env:FNM_NODE_DIST_MIRROR="https://mirrors.tencent.com/nodejs-release/" # 如果想永久生效,可将 `FNM_NODE_DIST_MIRROR` 和上面的镜像地址,像添加PATH一样,添加为“系统环境变量” -
安装 Node.js :
fnm install --lts
PS C:\Users\86178> curl -fsSL https://fnm.vercel.app/install | bash Invoke-WebRequest : 找不到与参数名称"fsSL"匹配的参数。
Windows PowerShell 自带的 curl 实际上是 Invoke-WebRequest 命令的别名,它不支持 Linux curl 的 -fsSL 参数。解决方法很简单:使用 PowerShell 原生的命令替代。
🔧 正确的安装命令
请继续在当前的 PowerShell(管理员身份)中,执行以下修正后的命令:
powershell
# 使用 PowerShell 的 Invoke-WebRequest 命令下载并执行安装脚本
irm https://fnm.vercel.app/install -o install.ps1; .\install.ps1
命令说明:
-
irm是Invoke-RestMethod的别名,是 PowerShell 中用于网络请求的命令,可以在这里替代curl。 -
-o install.ps1表示将下载的脚本保存为当前目录下的install.ps1文件。 -
; .\install.ps1表示前一个命令完成后,执行这个安装脚本。
📝 安装后的必要步骤
脚本执行完毕后,请务必按顺序完成以下两步:
-
按照安装脚本最后几行的提示,执行它输出的命令 。
通常会是类似下面这样的命令,用于将
fnm加载到当前会话。你必须手动执行它:powershell
& "C:\Users\86178\.fnm\fnm.exe" env --shell powershell | Invoke-Expression -
永久添加 fnm 到 PATH(关键!)
为了避免你再次遇到
'fnm' 不是内部命令的错误,安装后必须手动将其添加到系统环境变量。这和之前说的方法完全一样:-
打开 "编辑系统环境变量"。
-
在 "系统变量" 中找到
Path并编辑。 -
点击 "新建" ,添加 fnm 的安装目录,通常是
C:\Users\86178\.fnm。 -
点击 "确定" 保存,并彻底重启你的 PowerShell 窗口。
-
✅ 验证与后续操作
打开新的 PowerShell 窗口,执行以下流程:
| 步骤 | 命令 | 预期结果 |
|---|---|---|
| 1. 验证安装 | fnm --version |
显示版本号(如 1.x.x) |
| 2. 配置镜像源 | $env:FNM_NODE_DIST_MIRROR="https://mirrors.tencent.com/nodejs-release/" |
无错误提示 |
| 3. 安装Node.js | fnm install --lts |
开始高速下载并安装最新LTS版本 |
如果配置镜像源想永久生效,还是像之前说的,将 FNM_NODE_DIST_MIRROR 变量和镜像地址添加到"系统环境变量"中。
💎 总结
你现在遇到的问题链条是:
-
winget源故障 → 改用脚本安装 -
PowerShell 的
curl语法不同 → 改用irm命令
请先使用 irm https://fnm.vercel.app/install -o install.ps1; .\install.ps1 这条命令完成安装,并务必执行安装脚本输出的命令以及手动添加 PATH,即可解决所有问题。
PS C:\Users\86178> irm https://fnm.vercel.app/install -o install.ps1; .\install.ps1 irm : 无法连接到远程服务器
这个错误表明你的网络无法访问 fnm.vercel.app 这个域名,这在国内有时会发生。但请放心,我们有直接且100%可行的解决方案。
💡 核心解决方案:手动下载安装
既然网络访问不畅,我们绕开它,直接从 GitHub 下载官方编译好的 fnm 可执行文件。
请严格按以下步骤操作:
第一步:手动下载 fnm 程序
-
用浏览器打开 GitHub 发布页面:https://github.com/Schniz/fnm/releases
-
在 "Assets" 部分,找到并下载文件名类似
fnm-windows-x64.zip的压缩包(选择最新版本即可)。 -
将下载的
.zip文件解压 。你会得到一个名为fnm.exe的文件。
第二步:放置 fnm.exe 并配置环境变量 (最关键!)
-
在
C:\Users\86178目录下(也就是你当前 PowerShell 所在的目录),新建一个文件夹 ,命名为.fnm(注意前面有个点)。 -
将解压得到的
fnm.exe文件移动或复制到C:\Users\86178\.fnm\目录下。 -
将 fnm 添加到系统 PATH 环境变量:
-
在 Windows 搜索框输入 "编辑系统环境变量" 并打开。
-
点击 "环境变量" -> 在 "系统变量" 区域找到并选中
Path-> 点击 "编辑"。 -
点击 "新建" ,然后输入 fnm 的完整路径:
C:\Users\86178\.fnm -
点击所有 "确定" 保存。
-
第三步:验证安装并配置镜像源
-
彻底关闭当前所有 PowerShell 或 CMD 窗口 ,然后重新以管理员身份打开一个新的 PowerShell。
-
输入以下命令验证
fnm是否可用:powershell
fnm --version-
如果成功,会显示版本号(如
1.x.x)。 -
如果仍然提示"不是内部命令",请回到第二步,仔细检查路径是否添加正确,并确保已重启终端。
-
-
配置国内镜像源(以腾讯云为例,在 PowerShell 中执行):
powershell
$env:FNM_NODE_DIST_MIRROR="https://mirrors.tencent.com/nodejs-release/"- (如果你想永久生效,可以像添加 PATH 一样,将
FNM_NODE_DIST_MIRROR也添加为一个新的"系统变量",值为上面的镜像地址)。
- (如果你想永久生效,可以像添加 PATH 一样,将
第四步:安装最新 Node.js LTS 版本
执行最终命令:
powershell
fnm install --lts
重要提示
-
确保你下载的是
fnm-windows-x64.zip,而不是源码包。 -
PATH环境变量的修改和终端重启是成功的关键 ,系统需要重新加载配置才能找到fnm命令。 -
手动下载的方式完全绕过了网络安装脚本,因此是最可靠的。
完成以上步骤后,你应该就能顺利安装 Node.js 了。
GitHub 打不开,暂且放弃。