查看: 329|回复: 1

Windows下fnm管理Node.js版本的安装与PowerShell配置

[复制链接]
发表于 昨天 09:00 | 显示全部楼层 |阅读模式
在Windows环境下开发Node.js项目时,经常需要切换不同的Node版本以适应不同项目的依赖需求。fnm(Fast Node Manager)是一个跨平台的Node版本管理工具,相比nvm-windows,它基于Rust实现,速度更快,尤其适合在PowerShell中使用。下面详细介绍fnm在Windows上的安装、PowerShell环境配置以及常用操作。

一、安装fnm

使用Windows自带的包管理器Winget即可安装:
  1. winget install Schniz.fnm
复制代码

安装完成后,fnm的可执行文件已存在于系统路径中,但尚未与Shell环境绑定,需要手动配置PowerShell以在打开终端时自动加载fnm的环境变量。

二、配置PowerShell

1. 允许执行脚本

默认情况下,PowerShell的执行策略可能限制脚本运行。执行以下命令将当前用户的执行策略设为RemoteSigned(允许执行本地脚本和已签名的远程脚本):
  1. Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
复制代码

如果你使用的是管理员权限的PowerShell,也可以直接设置,但通常当前用户级别已足够。

2. 编辑PowerShell配置文件(Profile)

每次打开PowerShell时自动加载fnm环境,需要在Profile文件中添加一行命令。

首先,在PowerShell中运行以下命令以创建或打开Profile文件:
  1. if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
  2. Invoke-Item $PROFILE
复制代码

该命令会检测Profile文件是否存在,不存在则新建,然后用记事本打开。

在文件末尾添加下面这一行:
  1. fnm env --use-on-cd --shell --resolve-engines powershell | Out-String | Invoke-Expression
复制代码

各参数说明:
- --use-on-cd:当使用
  1. cd
复制代码
切换到包含.node-version或.nvmrc文件的目录时,自动切换Node版本。
- --shell powershell:指定输出适合PowerShell的环境变量设置脚本。
- --resolve-engines:使fnm能够解析项目中的package.json中engines.node字段,将其视为有效版本约束。

保存文件后,关闭所有PowerShell窗口并重新打开,或者执行以下命令使配置立即生效:
  1. . $PROFILE
复制代码

三、fnm常用命令:安装与切换Node版本

配置完成后,即可使用以下命令管理Node版本。

1. 安装指定版本
  1. fnm install 18.20.4
复制代码

安装最新的LTS版本:
  1. fnm install --lts
复制代码

2. 切换版本(当前Shell会话生效)
  1. fnm use 18.20.4
复制代码

此命令只在当前命令行窗口有效,关闭后恢复为默认版本。

3. 查看当前版本
  1. fnm current
复制代码

4. 列出已安装版本
  1. fnm ls
复制代码

5. 列出可安装的远程版本
  1. fnm ls-remote
复制代码

6. 设置默认版本
  1. fnm default 22.13.1
复制代码

设置后,所有新建的Shell窗口都将默认使用该版本。

7. 项目自动切换版本

在项目根目录下创建.node-version文件(也支持.nvmrc),内容直接写入版本号,例如:
  1. v18.20.4
复制代码

之后每次进入该目录时,由于在Profile中配置了--use-on-cd,fnm会自动切换到与项目匹配的Node版本(需要确保该版本已安装)。

四、注意事项与扩展

- 如果使用
  1. fnm use
复制代码
后仍然出现版本不对,请检查PowerShell的执行策略以及Profile文件是否成功加载。
- 在Windows上,fnm会将安装的Node版本默认存储于
  1. %LOCALAPPDATA%\fnm\
复制代码
目录下。
- 更多高级配置可参考fnm官方文档:github.com/Schniz/fnm。

通过fnm + PowerShell配置,你可以像在Linux下使用nvm一样丝滑地在Windows上管理多个Node版本,尤其适合需要频繁切换Node版本的开发场景。
回复

使用道具 举报

发表于 昨天 09:10 | 显示全部楼层

Re: Windows下fnm管理Node.js版本的安装与PowerShell配置

感谢分享,非常实用的教程!之前用nvm-windows总觉得切换速度有点慢,fnm的Rust实现确实快很多。你提到的`--resolve-engines`参数我还没用过,原来可以直接解析package.json里的engines字段,这个很赞,省得每个项目都手动建.node-version文件了。另外Profile文件配置那一步,对于新手来说可能“允许执行脚本”和编辑Profile容易被忽略,你写得很清楚。收藏了,以后推荐给同事用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-14 03:08 , Processed in 0.025560 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部