Fast Node Manager (fnm) 是一个用来管理和切换 Node.js 版本的快速、轻量级工具。fnm 的设计目标是简化 Node.js 环境的管理,特别是在需要多个 Node.js 版本的开发环境中。
1、fnm 简介
1.1 fnm 的主要特点
- 速度快:fnm 使用 Rust 编写,比起传统的 Node.js 版本管理工具 (如 nvm) 更加高效,切换和安装 Node.js 版本速度较快。
- 多平台支持:支持 macOS、Linux 和 Windows 操作系统,适合跨平台开发需求。
- 易于使用:fnm 提供了简单易懂的命令行界面,命令与 nvm 类似,便于用户迁移和上手。
- 多版本管理:fnm 允许开发者安装、删除、切换不同版本的 Node.js,非常适合在不同项目中需要不同 Node.js 版本的情况。
1.2 fnm 的核心功能
- 安装 Node.js 版本:可以快速安装不同版本的 Node.js,包括最新稳定版、特定版本或指定标签的版本。
- 切换 Node.js 版本:可以在命令行一键切换到指定的 Node.js 版本。
- 全局版本与本地版本设置:fnm 支持为项目目录指定特定版本(local version),也可以设置系统全局版本,适应多种开发环境。
- 自动检测与加载 .nvmrc 文件:如果项目目录下有 .nvmrc 文件,fnm 会自动加载其中定义的 Node.js 版本,简化开发环境配置。
1.3 常用命令示例
以下是一些常用的 fnm 命令:
- 安装特定版本:fnm install (例如 fnm install 16.0.0 安装 Node.js 16.0.0)
- 使用指定版本:fnm use 切换到某个安装的 Node.js 版本
- 列出已安装版本:fnm list 可以查看当前已安装的 Node.js 版本
- 卸载版本:fnm uninstall 删除指定的 Node.js 版本
1.4 fnm 与其他管理工具的对比
fnm 与 nvm 等传统工具相比,性能更快,占用资源更少,同时在 Rust 的加持下更加稳定,适合注重速度和性能的开发者。
2、Chocolatey安装
2.1 powerShell 启动参数设置
将powerShell 以管理员方式打开
打开后输入:Set-ExecutionPolicy RemoteSigned 并且回车
【*】说明讲解:
Set-ExecutionPolicy RemoteSigned 是 Windows PowerShell 中的一条命令,用于设置 PowerShell 脚本的执行策略。它决定了在当前系统上,哪些类型的 PowerShell 脚本可以运行。
命令详解
-
- Set-ExecutionPolicy:这是用于修改 PowerShell 执行策略的命令。
- RemoteSigned:这是指定的策略类型,意思是:
- 本地创建的脚本可以直接运行,不需要经过签名。
- 从网络或其他远程来源(如通过浏览器下载)的脚本必须有可信的数字签名,才允许在系统上运行。
功能和作用
Set-ExecutionPolicy RemoteSigned 的作用是在保证一定安全性的前提下,允许运行本地的 PowerShell 脚本。使用该策略可以防止恶意脚本(特别是从远程下载的未签名脚本)在系统中执行,减少了风险。
其他策略类型:
除了 RemoteSigned,PowerShell 还有其他执行策略,包含:
-
- Restricted:不允许执行任何脚本(默认策略)。
- AllSigned:所有脚本(包括本地脚本)都需要签名。
- Unrestricted:可以执行所有脚本,不管是否签名。
- Bypass:完全忽略执行策略,不推荐使用,除非出于特定需求。
输入Y
2.2 安装 chocolatey
1.输入安装命令:iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
2. 命令讲解:
命令 iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex 用于在 Windows 系统上安装 Chocolatey,这是一个 Windows 包管理器,帮助用户快速安装和管理软件。以下是命令解析:
1. iwr (Invoke-WebRequest) :iwr 是 Invoke-WebRequest 的缩写,用于从网络上请求数据。这里,它请求的是 Chocolatey 的安装脚本文件 (https://chocolatey.org/install.ps1),这是一个 PowerShell 脚本,用于安装 Chocolatey。
2. https://chocolatey.org/install.ps1 :这是目标 URL,指向 Chocolatey 的安装脚本。运行该脚本会自动完成 Chocolatey 的安装过程。
3. -UseBasicParsing : 这是 Invoke-WebRequest 的一个参数,表示使用基本的解析模式。这种模式适用于简化的网络请求场景,可以绕过一些与 Internet Explorer 配置相关的问题,特别是在不支持高级解析的 PowerShell 版本中。
4. | (管道) :管道 | 的作用是将前面 Invoke-WebRequest 命令的输出传递给后面的命令。这里,它将 install.ps1 脚本的内容传递给 iex。
5. iex (Invoke-Expression) : iex 是 Invoke-Expression 的缩写,作用是执行传入的字符串或脚本代码。这里,它执行了从 install.ps1 下载的脚本,自动开始 Chocolatey 的安装。
总结:整个命令的作用是:从 Chocolatey 网站下载安装脚本,并立即执行它来安装 Chocolatey。
3.安装验证
在 powershell 中输入:choco -v 实现chocolatey 的版本查询
3、 安装 fnm
3.1 通过chocolatey 安装 fnm
在命令行中输入: choco install fnm
遇到提示,输入 yes:
验证安装,输入命令(注意:V是大写字母):fnm -V
将fnm 的环境变量配置到PowerShell中,如果不存在则创建新文件
输入内容:fnm env --use-on-cd | Out-String | Invoke-Expression
保存文档
powershell 中执行命令,加载配置:& $PROFILE
3.2 环境变量调整
1. 删除旧的的环境变量(可跳过)
由于之前配置了环境变量,所以进行删除(未安装的可以省略),所以此时在cmd 中的node -v还是之前安装的版本
打开系统设置
删除 nodejs 指向目录(在path中的)
删除完成后,此时 node -v 在cmd 中是错误的
2. 进行 cmd 的配置
检查 USERPROFILE 环境变量是否存在,命令如下:
echo %USERPROFILE%
如果不存在系统环境变量中加入变量
(在用户环境变量中加入)
加入后在cmd 中指执行:
powerShell 中是: $env:USERPROFILE
3. 创建 bashrc.cmd 文件
在自己的的目录下创建 bashrc 文件
内容编辑如下:
@echo off
FOR /f "tokens=*" %%z IN ('fnm env --use-on-cd') DO CALL %%z
需要注意的是:编码为utf-8
建议用Emeditor编辑
4. 编辑cmd的启动变量参数
右键编辑属性
看到如下信息:
编辑目标信息为:%windir%\system32\cmd.exe /k %USERPROFILE%\bashrc.cmd
点击 右下角的 “应用”
此时在cmd 中输入 node -v 就可以得到正确的版本信息了
4 fnm 操作
4.1 基于版本安装node js 与powerShell 中验证
看一下 nodejs.org 官网版本
选择v22.11.0 版本:fnm install v22.11.0
命令开始安装
查看管理的node 版本列表
执行命令:fnm list
执行命令:fnm use v22.11.0
查看当前node 版本:node -v
4.2 cmd 命令验证
下载:
list 查看
当前使用与切换:
通过此操作已经实现了node 版本的快速管理切换。