【Windows】系统,Node js 版本管理工具安装-fnm

Fast Node Manager (fnm) 是一个用来管理和切换 Node.js 版本的快速、轻量级工具。fnm 的设计目标是简化 Node.js 环境的管理,特别是在需要多个 Node.js 版本的开发环境中。

1、fnm 简介

1.1 fnm 的主要特点

  1. 速度快:fnm 使用 Rust 编写,比起传统的 Node.js 版本管理工具 (如 nvm) 更加高效,切换和安装 Node.js 版本速度较快。
  2. 多平台支持:支持 macOS、Linux 和 Windows 操作系统,适合跨平台开发需求。
  3. 易于使用:fnm 提供了简单易懂的命令行界面,命令与 nvm 类似,便于用户迁移和上手。
  4. 多版本管理: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 版本的快速管理切换。