Windows系统下 NVM 安装 Node.js 及版本切换实战指南

以下是 Windows 11 系统下使用 NVM 安装 Node.js 并实现版本自由切换的详细步骤:


一、安装 NVM(Node Version Manager)

1. 卸载已有 Node.js

如果已安装 Node.js,请先卸载:

  • 控制面板 ➔ 程序与功能 ➔ 找到 Node.js,右键选择 卸载
  • 删除残留文件(如 C:\Program Files\nodejs 或 C:\Users\<用户名>\AppData\Roaming\npm)。

2. 下载 NVM for Windows
  1. 访问 nvm-windows GitHub 发布页。
  2. 下载最新版本的 nvm-setup.exe(如 v1.1.12)。

3. 安装 NVM
  1. 运行安装程序
    • 双击下载的 nvm-setup.exe
    • 安装向导中:
      • NVM 安装路径:建议选择无空格的路径(例如 D:\Program\nvm)。
      • Node.js 安装路径:建议选择 D:\Program\nodejs(后续可修改)。
  2. 配置镜像源(加速下载):
    • 安装完成后,找到 NVM 的安装目录(如 D:\Program\nvm)。
    • 编辑 settings.txt 文件,添加以下两行:
      node_mirror: https://npmmirror.com/mirrors/node/
      npm_mirror: https://npmmirror.com/mirrors/npm/

4. 验证 NVM 安装
  1. 以管理员身份运行 PowerShell 或 CMD
    • 按 Win + S,搜索 cmd 或 PowerShell,右键选择 以管理员身份运行
  2. 输入以下命令验证:
    nvm --version
    • 若显示版本号(如 1.1.12),表示安装成功。

二、安装和切换 Node.js 版本

1. 查看可安装的 Node.js 版本
nvm list available
  • 会列出所有可安装的版本(如 v14.21.3v16.20.2v18.20.4 等)。
2. 安装指定版本

以安装 v14.21.3 为例:

nvm install 14.21.3
  • 安装过程中会自动下载并配置 Node.js 和 npm。
3. 切换 Node.js 版本
  1. 查看已安装版本
    nvm list
  2. 切换版本
    nvm use 14.21.3
          3.验证版本:                                                                                                   
    node -v
    npm -v
    4. 设置默认版本

    若希望每次打开终端时自动使用某个版本:

    nvm alias default 14.21.3

    三、项目级版本管理

    1. 在项目目录中指定版本
    1. 在项目根目录创建 .nvmrc 文件:
      echo 14.21.3 > .nvmrc
    2. 进入项目目录并自动切换版本:
      nvm use

    四、常用命令

    命令说明
    nvm install <version>安装指定版本
    nvm use <version>切换到指定版本
    nvm list查看已安装版本
    nvm list available查看可安装版本
    nvm uninstall <version>卸载指定版本
    nvm alias default <version>设置默认版本
    npm config set registry https://registry.npmmirror.com设置 npm 镜像源

    五、注意事项

    1. 权限问题
      • 必须以 管理员身份运行 PowerShell/CMD,否则可能报错。
    2. 环境变量
      • NVM 会自动配置环境变量,无需手动设置。
    3. 全局模块隔离
      • 每个 Node.js 版本的全局模块(npm install -g)是独立的,切换版本后需重新安装。
    4. 镜像源加速
      • 如果下载速度慢,确保 settings.txt 中的镜像源已正确配置为国内源(如 npmmirror.com)。

    六、常见问题

    1. 安装失败?
    • 原因:网络问题或镜像源未配置。
    • 解决
      • 检查 settings.txt 中的镜像源是否正确。
      • 尝试使用官方镜像:https://nodejs.org/dist/
    2. NVM 命令未识别?
    • 原因:未以管理员身份运行终端。
    • 解决
      • 关闭当前终端,重新以 管理员身份运行 PowerShell/CMD
    3. 版本切换后未生效?
    • 原因:未正确切换或环境变量冲突。
    • 解决
      • 确保使用 nvm use <version> 命令切换。
      • 避免手动修改系统环境变量 PATH

    七、实操示例

    1. 安装 Node.js v14.21.3 和 v16.20.2
      nvm install 14.21.3
      nvm install 16.20.2
    2. 切换版本
      nvm use 14.21.3  # 切换到 v14.21.3
      nvm use 16.20.2  # 切换到 v16.20.2
    3. 设置默认版本
      nvm alias default 14.21.3

    通过以上步骤,你可以在 Windows 11 上轻松管理多个 Node.js 版本,并实现版本自由切换!如果需要进一步帮助,请随时提问。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82530.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    【leetcode】977. 有序数组的平方

    有序数组的平方 题目代码1. 使用sorted2. 双指针 题目 977. 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 示例 1&#xff1a; 输入&#xff1a;nums [-4,-1,0,3,10] 输…

    Obsidian 数据可视化深度实践:用 DataviewJS 与 Charts 插件构建智能日报系统

    Obsidian 数据可视化深度实践&#xff1a;用 DataviewJS 与 Charts 插件构建智能日报系统 一、核心架构解析 本系统基于 Obsidian 的 DataviewJS 和 Charts 插件&#xff0c;实现日报数据的自动采集、可视化分析及智能回溯功能&#xff08;系统架构原理见&#xff09;。其技术…

    深入解析Spring Boot与Kafka集成:构建高效消息驱动应用

    深入解析Spring Boot与Kafka集成&#xff1a;构建高效消息驱动应用 引言 在现代分布式系统中&#xff0c;消息队列是实现异步通信和解耦的关键技术之一。Apache Kafka作为一款高性能、分布式的消息队列系统&#xff0c;广泛应用于大数据和实时数据处理场景。本文将详细介绍如…

    Rust 学习笔记:关于生命周期的练习题

    Rust 学习笔记&#xff1a;关于生命周期的练习题 Rust 学习笔记&#xff1a;关于生命周期的练习题生命周期旨在防止哪种编程错误&#xff1f;以下代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;如果一个引用的生命周期是 static&#xff0c;这意味着什么&…

    word解决不同文档同样的字体段落设置下看起来行距不同的问题

    问题&#xff1a; 有时候我们照着模板修改文档格式&#xff0c;明明字体和段落设置一模一样&#xff0c;但是看起来行距不一样。 解决办法&#xff1a; 一般照着模板修改文档内容&#xff0c;要注意以下几点&#xff0c;如果以下几点与模板设置相同时就可解决上述问题 1、纸…

    Jenkins实践(9):配置“构建历史的显示名称,加上包名等信息“

    Jenkins实践(9):配置“构建历史的显示名称,加上包名等信息“ 版本:Jenkins 4.262.2 需求:想要在构建历史中展示,本次运行的是哪个版本或哪个包 操作步骤: 1、先安装插件Build Name and Description Setter 2、Set Build Name 3、构建历史处查看展示 插件特性说明 安装依赖…

    matIo库及.mat数据格式介绍

    一.概述 1..mat数据格式 &#xff08;1&#xff09;.mat 是 MATLAB 软件的标准二进制数据存储格式&#xff0c;用于保存变量、矩阵、数组、结构体等数据类型。其名称源于 “MATLAB Data” 的缩写&#xff0c;最初设计为高效存储和加载 MATLAB 环境中的数据&#xff0c;后来逐…

    企业级调度器LVS (面试版)

    1. 什么是 LVS?有什么作⽤? LVS ( Linux Virtual Server )是⼀个基于 Linux 内核实现的⾼性能、可扩展和可靠的负载均衡。它将多个服务器组成⼀个⾼可⽤、⾼性能和⾼可靠的虚拟服务器集群,通过将客户端的请求转发到不同的后端服务器,实现负载均衡和⾼可⽤性。 2.什么是 …

    用python制作一个简易的聊天室软件

    文章目录 效果图python源码使用说明效果图 只需要一百多行的python代码,就能制作一个简易的聊天室软件。效果如下: 操作说明: 1、先运行server.py启动服务器; 2、每运行一次client.py可以创建一个聊天用户(需要输入用户昵称); 3、输入对方的昵称即可与其聊天,输入“a…

    Android13 开机时间优化

    前言 在实际应用场景中&#xff0c;特定领域对 Android 系统的启动时间有着极为严苛的要求&#xff0c;车载领域便是典型代表。想象一下&#xff0c;当车辆已经行驶出数公里之遥&#xff0c;车内的信息娱乐系统&#xff08;IVI&#xff09;却仍未完成启动&#xff0c;这无疑会…

    08SpringBoot高级--自动化配置

    目录 Spring Boot Starter 依赖管理解释 一、核心概念 二、工作原理 依赖传递&#xff1a; 自动配置&#xff1a; 版本管理&#xff1a; 三、核心流程 四、常用 Starter 示例 五、自定义 Starter 步骤 创建配置类&#xff1a; 配置属性&#xff1a; 注册自动配置&a…

    基于cornerstone3D的dicom影像浏览器 第二十四章 显示方位、坐标系、vr轮廓线

    系列文章目录 文章目录 系列文章目录前言一、工具栏修改二、切片窗口显示方位文字1. 修改mprvr.js&#xff0c;添加函数getOrientationMarkers2. 修改DisplayerArea3D.vue 三、vr窗口显示坐标系1. 修改mprvr.js 添加OrientationMarkerTool2. view3d.vue中响应工具栏事件3. 修改…

    【C/C++】线程局部存储:原理与应用详解

    文章目录 1 基础概念1.1 定义1.2 初始化规则1.3 全局TLS vs 局部静态TLS 2 内存布局2.1 实现机制2.2 典型内存结构2.3 性能特点 3 使用场景/用途3.1 场景3.2 用途 4 注意事项5 对比其他技术6 示例代码7 建议7.1 调试7.2 优化 8 学习资料9 总结 在 C 多线程编程中&#xff0c;线…

    【图像大模型】IP-Adapter:图像提示适配器的技术解析与实践指南

    IP-Adapter&#xff1a;图像提示适配器的技术解析与实践指南 一、项目背景与技术价值1.1 图像生成中的个性化控制需求1.2 IP-Adapter的核心贡献 二、技术原理深度解析2.1 整体架构设计2.2 图像特征编码器2.3 训练策略 三、项目部署与实战指南3.1 环境配置3.2 模型下载3.3 基础生…

    MySQL-5.7 修改密码和连接访问权限

    一、MySQL-5.7 修改密码和连接权限设置 修改密码语法 注意&#xff1a;rootlocalhost 和 root192.168.56.% 是两个不同的用户。在修改密码时&#xff0c;两个用户的密码是各自分别保存&#xff0c;如果两个用户密码设置不一样则登陆时注意登陆密码 GRANT ALL PRIVILEGES ON …

    Linux基本指令篇 —— touch指令

    touch是Linux和Unix系统中一个非常基础但实用的命令&#xff0c;主要用于操作文件的时间戳和创建空文件。下面我将详细介绍这个命令的用法和功能。 目录 一、基本功能 1. 创建空文件 2. 同时创建多个文件 3. 创建带有空格的文件名&#xff08;需要使用引号&#xff09; 二、…

    mysql explain使用

    文章目录 type 访问类型性能高到低多注意type: index 出现的场景 key 实际使用的索引Extra 额外信息其他字段 通过 EXPLAIN 你可以知道&#xff1a;如是否使用索引、扫描多少行、是否需要排序或临时表 EXPLAIN 三板斧&#xff08;type、key、Extra&#xff09; 例子&#xff1…

    JMeter-SSE响应数据自动化

    结构图 背景&#xff1a; 需要写一个JMeter脚本来进行自动化测试&#xff0c;主要是通过接口调用一些东西&#xff0c;同时要对响应的数据进行处理&#xff0c;包括不限于错误信息的输出。 1.SSE(摘录) SSE&#xff08;Server-Sent Events&#xff09;是一种基于HTTP协议、允许…

    <<运算符重载 和 c_str() 的区别和联系

    例题 文章开始之前我们看下以下代码&#xff0c;你能精准的说出正确的输出结果并知道其原理吗&#xff1f; void test() {string s1("hello world");cout << s1 << endl;//cout << s1.c_str() << endl;//const char* p1 "xxxx"…

    python web flask专题-Flask入门指南:从安装到核心功能详解

    Flask入门指南&#xff1a;从安装到核心功能详解 Flask作为Python最流行的轻量级Web框架之一&#xff0c;以其简洁灵活的特性广受开发者喜爱。本文将带你从零开始学习Flask&#xff0c;涵盖安装配置、项目结构、应用实例、路由系统以及请求响应处理等核心知识点。 1. Flask安…