fnm 安装及配置(Windows)

官方配置文档

注意:Windows安装比较麻烦,所以Windows建议使用Windows Subsystem for Linux,能避免非常多的问题,或者继续用nvm-windows。

安装

通过Winget、Scoop、Chocolatey、Cargo等工具来安装

参考使用

发布页面下载对应的exe文件

在这里插入图片描述

  1. 最新版的fnm-windows.zip

  2. 将里面的fnm.exe解压缩到你想要放置的地方。我将它放在了C:\Program Files\fnm-windows

  3. 把含有fnm.exe的路径加入到系统的环境变量中:C:\Program Files\fnm-windows

    ① 右键点击“此电脑”或“我的电脑”,选择“属性”;

    ② 点击“高级系统设置”;

    ④ 在“系统属性”窗口中,点击“环境变量”;

    ⑤ 在“系统变量”部分,点击“新建”;

    ⑥ 分别输入变量名FNM_DIR与变量值C:\Program Files\fnm-windows(替换为自己的Fnm安装路径);

    ⑦ 在“系统变量”部分,找到 Path 变量并双击;

    ⑧ 点击“新建”,添加 Fnm 的安装路径%FNM_DIR%

    ⑨ 点击“确定”以保存更改。

    也可直接在 Path 中添加 Fnm安装路径

  4. 验证:打开Windows PowerShell,输入命令:fnm --version

    PS C:\Users\admin> fnm -V
    fnm 1.38.1
    

配置

fnm install --lts安装后,执行fnm use xxx报错

error: We can't find the necessary environment variables to replace the Node version.
You should setup your shell profile to evaluate `fnm env`, see https://github.com/Schniz/fnm#shell-setup on how to do this
Check out our documentation for more information: https://fnm.vercel.app

原因:刚安装完fnm,配置文件尚未完全配置

cmd

本质上都是运行官方文档的一段代码

@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
)

猜测原理为:fnm use 版本号 命令需要在上下文中获取版本号信息,执行这段代码会手动把信息放入到cmd的上下文中

因此,各种方式都是运行该段代码(之后这段代码会放在start.cmd文件里)。

  1. 新建文本文档,贴入上面代码,重命名为cmd后缀文件,例:start.cmd

  2. 使用 win + r 命令输入 cmd,默认地址是在 %USERPROFILE% 路径下。把start.cmd文件放在这里,每次打开cmd窗口都要手动输入 start.cmd 运行。之后可在该窗口使用fnm

  3. 打开注册表编辑器,进入计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor路径下,如果没有对应文件夹,需要手动进行创建。

    Command Processor 文件夹上右键 -> 新建 -> 字符串值数值名称为 AutoRun,数值数据为start.cmd文件的地址(C:\Users\admin\start.cmd)。

    之后,每个cmd窗口都可直接使用fnm

    若不使用不了,尝试 重启电脑 让修改后的注册表生效

Windows PowerShell

也是开发工具的集成终端

每次打开 PowerShell,都需要执行配置命令

fnm env --use-on-cd | Out-String | Invoke-Expression
  • PowerShell窗口,输入notepad $profile命令打开 PowerShell 配置文件,贴入配置命令:

    fnm env --use-on-cd | Out-String | Invoke-Expression
    
  • 如果提示找不到文件路径,输入$profile,按输出路径创建目录及文件,再贴入配置命令

    PS C:\Users\admin> $PROFILE
    C:\Users\admin\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
    
  • 若提示无法加载文件 WindowsPowerShell\profile.ps1,更改执行策略允许运行脚本:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    

    输入 Y 并按回车键确认

    尝试运行一个简单的 PowerShell 脚本来验证设置是否成功:Write-Output "Hello, PowerShell!"

  • 重新打开窗口,可直接使用 fnm

其他

PowerShell 输入命令:fnm env

PS C:\Users\admin> fnm env
$env:PATH = "C:\Program Files\fnm-windows"
$env:FNM_MULTISHELL_PATH = "C:\Users\admin\AppData\Local\fnm_multishells\12400_1733887059197"
$env:FNM_VERSION_FILE_STRATEGY = "local"
$env:FNM_DIR = "C:\Users\admin\AppData\Roaming\fnm"
$env:FNM_LOGLEVEL = "info"
$env:FNM_NODE_DIST_MIRROR = "https://nodejs.org/dist"
$env:FNM_COREPACK_ENABLED = "false"
$env:FNM_RESOLVE_ENGINES = "true"
$env:FNM_ARCH = "x64"

具体释义如下:
$env:FNM_NODE_DIST_MIRROR:指定 Node.js 分发包的镜像地址。
$env:FNM_VERSION_FILE_STRATEGY:定义如何处理版本文件。
$env:FNM_ARCH:指定系统的架构类型。
$env:FNM_MULTISHELL_PATH:指定用于管理多 Shell 会话的路径。在使用多个终端或 Shell 的情况下,Fnm 会在该路径下创建相应的目录,以便管理不同 Shell 会话的 Node.js 版本。
$env:FNM_COREPACK_ENABLED:启用或禁用 Corepack。
$env:FNM_RESOLVE_ENGINES:确定是否解析引擎版本。
$env:FNM_LOGLEVEL:设置 Fnm 的日志级别,默认值info,可选值quiet, error, info。
$env:FNM_DIR:指定 Fnm 的安装目录。


参考:

还在用nvm?来试试更快的node版本管理工具——fnm

Node.JS 版本管理工具 Fnm 安装及配置(Windows)


彻底解决fnm刚安装完出现You should setup your shell profile to evaluate ‘fnm env‘问题

BAT脚本编写教程(比较易懂和全面)

windows bat 批处理脚本编写指南

系统变量 %USERPROFILE%

win+r,输入cmd 回车

在cmd窗口下输入 set 回车,可以查看系统变量


Windows 上使用fnm 安装Node.js

完美解决无法加载文件 WindowsPowerShell\profile.ps1系统编译问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值