Appearance
fnm
fnm 简介
fnm(Fast Node Manager)的本质是:
- 在不同目录下安装完整、独立的 Node.js 发行版;
- 通过修改 PATH,在 shell 中切换当前生效的 Node.js。
信息
使用 fnm 管理并安装多个 Node.js 版本时,不会相互污染 npm、corepack、pnpm。
每个 Node.js 版本都自带并独立拥有自己的 npm 与 corepack,而 pnpm 通常由 corepack 进行 “按项目隔离” 管理。
fnm 安装配置
下载安装
打开 PowerShell 执行以下命令:
PowerShell
PS C:\Windows\system32> winget install Schniz.fnm --location "C:\Program Files\fnm"
已找到 Fast Node Manager [Schniz.fnm] 版本 1.37.1
此应用程序由其所有者授权给你。
Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证。
正在下载 https://github.com/Schniz/fnm/releases/download/v1.37.1/fnm-windows.zip
██████████████████████████████ 3.04 MB / 3.04 MB
已成功验证安装程序哈希
正在提取存档...
已成功提取存档
正在启动程序包安装...
添加了命令行别名: "fnm"
已修改路径环境变量;重启 shell 以使用新值。
已成功安装1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
以上命令将会:
- 在
C:\Program Files\fnm目录下添加fnm.exe; - 在
%HOMEPATH%\AppData\Local\Microsoft\WinGet\Links添加一个fnm.exe的.symlink; - 在用户
Path环境变量下添加%HOMEPATH%\AppData\Local\Microsoft\WinGet\Links项;
修改 Node.JS 的安装路径
PowerShell
PS C:\Windows\system32> fnm env
$env:PATH = ...
$env:FNM_VERSION_FILE_STRATEGY = "local"
$env:FNM_MULTISHELL_PATH = "C:\Users\UserName\AppData\Local\fnm_multishells\7292_1725443259141"
$env:FNM_NODE_DIST_MIRROR = "https://nodejs.org/dist"
$env:FNM_DIR = "C:\Users\UserName\AppData\Roaming\fnm"
$env:FNM_LOGLEVEL = "info"
$env:FNM_RESOLVE_ENGINES = "false"
$env:FNM_COREPACK_ENABLED = "false"
$env:FNM_ARCH = "x64"1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
FNM_DIR 表示 Node.JS 的安装路径。可以通过添加环境变量来修改 Node.JS 的安装路径。
信息
修改 PowerShell 的 Profile
PowerShell
PS C:\Windows\system32> $PROFILE
C:\Users\UserName\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps11
2
2
若以上文件不存在则新建该文件,打开该文件,在末尾添加一行:
PowerShell
...
fnm env --use-on-cd | Out-String | Invoke-Expression1
2
2
fnm 使用
常用命令
fnm ls-remote: 列出所有远程 Node.JS 版本;fnm ls: 列出本地所有的 Node.JS 版本;fnm install v21.0.0: 安装某一个指定版本;fnm current: 查看当前 Node.JS 版本;fnm use v21.0.0: 切换指定版本;fnm default v21.0.0: 设置默认版本;fnm uninstall v21.0.0: 卸载某一个指定版本;fnm alias <version> <alias>: 给某个版本设置别名;fnm unalias <alias>: 删除别名;
指定项目的 Node.JS 版本
在项目根目录下新建 .node-version 文件:
Text
v21.0.0