NodeJS版本管理工具fnm

前言

之前都是用的nvm,但是最近nvm在Windows上经常出现下载的版本运行的时候有问题,这里尝试下frm。

经过测试在Windows下frm会略显繁琐一点,下载依赖还是比较快的。

nvm配置

https://www.psvmc.cn/article/2022-03-02-nodejs-nvm.html

下载与配置

https://github.com/Schniz/fnm/releases

下载后 设置环境变量

新增系统变量

FNM_DIR:D:\Tools\fnm-windows

FNM_NODE_DIST_MIRROR: https://npmmirror.com/mirrors/node/

Path中添加

1
%FNM_DIR%

验证是否成功

1
fnm --version

验证

1
2
echo %FNM_DIR%
echo %FNM_NODE_DIST_MIRROR%

查看生成的配置

1
fnm env

环境生效

CMD

在Windows上生效需要每次打开的时候执行下面的脚本

新建文本文档:start.cmd

1
2
3
4
5
6
@echo off
:: for /F will launch a new instance of cmd so we create a guard to prevent an infnite loop
if not defined FNM_AUTORUN_GUARD (
set "FNM_AUTORUN_GUARD=AutorunGuard"
FOR /f "tokens=*" %%z IN ('fnm env --use-on-cd') DO CALL %%z
)

有三种方式

  • 手动执行
  • 快捷方式上添加参数使之自动执行
  • 注册表使之自动执行

手动执行

默认打开cmd的时候会在%USERPROFILE%这个路径

所以我们可以把上面的脚本放在这个路径,启动cmd后手动执行一下

快捷方式

然后在cmd的快捷方式上右键==》属性==》在目标里加上

1
/k %USERPROFILE%\start.cmd

其中

/k 参数告诉命令提示符窗口在运行完批处理文件后保持打开状态

通过注册表设置

输入regedit 进入注册表设置

找到计算机\HKEY_CURRENT_USER\Software\Microsoft\Command Processor

Command Processor 文件夹上右键 ==》新建==》字符串值 数值名称为 AutoRun ,数值数据为

start.cmd文件的地址,保存注册表之后重启电脑即能自由访问。

优点:每个cmd都能使用

缺点:侵入多

不建议用这种方法,会和其它软件的配置冲突。

PowserShell

执行其他命令前先执行

1
fnm env --use-on-cd | Out-String | Invoke-Expression

如果想默认执行

可以在 PowerShell 中輸入 $PROFILE

出现类似

C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

可能不存在该文件,新建Microsoft.PowerShell_profile.ps1即可

内容

1
fnm env --use-on-cd | Out-String | Invoke-Expression

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 查看所有远程可供安装的 Node 版本
fnm list-remote

# 安装某一 Node 版本
fnm install 16.16.0

# 切换某一 Node 版本
fnm use 16.16.0

# 查看当前使用的 Node 版本
fnm current

# 查看所有已安装的 Node 版本
fnm list

# 删除某一 Node 版本
fnm uninstall 16.16.0

# 设置默认版本
fnm default 16.16.0

# 设置 Node 版本别名
fnm alias <version> <alias>

# 移除 Node 版本别名
fnm unalias <alias>

设置后可以查看配置是否生效

1
2
node -v
npm -v