NVM完全指南:安装、配置与最佳实践

news2025/5/13 0:02:13

发布于 2025年5月7日 • 阅读时间:10分钟
在这里插入图片描述

💡 TL;DR: 本文详细介绍了如何完整卸载旧版Node.js,安装NVM,配置阿里云镜像源,以及设置node_global与node_cache目录,打造高效Node.js开发环境。

📋 目录

  • 为什么需要NVM?
  • 第一步:彻底卸载旧版Node.js
  • 第二步:安装NVM
  • 第三步:配置阿里云镜像加速
  • 第四步:使用NVM安装Node.js
  • 第五步:配置node_global和node_cache
  • NVM常用命令速查表
  • 常见问题与解决方案
  • 总结

为什么需要NVM?

作为开发者,你是否曾遇到这些问题?

  • 不同项目需要不同的Node.js版本
  • 新版本Node.js发布后,升级可能导致现有项目出错
  • 需要测试代码在多个Node.js版本上的兼容性

NVM (Node Version Manager) 正是为解决这些问题而生的工具。它允许你在同一台电脑上安装和切换多个Node.js版本,大大提高了开发效率和环境灵活性。

现在,让我们开始完整的安装和配置过程。

第一步:彻底卸载旧版Node.js

在安装NVM之前,你需要彻底卸载系统中已有的Node.js,以避免潜在冲突。

Windows系统

  1. 通过控制面板卸载
    • 打开控制面板 > 程序 > 程序和功能
    • 找到Node.js,右键选择"卸载"
    • 按照卸载向导完成操作

我这里是没有node,如果有可以删除

在这里插入图片描述

  1. 清理残留文件
    到指定目录删除对应的文件

    # 删除以下目录(如存在)
    C:\Program Files\nodejs
    C:\Program Files (x86)\nodejs
    C:\Users\{用户名}\AppData\Roaming\npm
    C:\Users\{用户名}\AppData\Roaming\npm-cache
    

    最后删除完事后打开dos 窗口输入where node,如果有则删除
    在这里插入图片描述

  2. 清理环境变量

    • 右键点击"此电脑" > 属性 > 高级系统设置 > 环境变量
    • 删除用户变量和系统变量中的NODE_PATH(如果存在)
    • 在系统变量的Path中删除所有指向nodejs的路径条目

Mac系统

# 使用Homebrew卸载
brew uninstall node

# 清理残留文件
rm -rf ~/.npm ~/.node-gyp

Linux系统

# Debian/Ubuntu系统
sudo apt remove nodejs npm
sudo apt purge nodejs npm
sudo apt autoremove

# CentOS/RHEL系统
sudo yum remove nodejs npm
sudo yum autoremove

# 手动清理(适用于所有Linux发行版)
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/lib/node_modules

第二步:安装NVM

Windows系统

  1. 访问nvm-windows官方发布页下载最新版的nvm-setup.zip,或者点击CSDN链接下载

  2. 解压并运行安装程序

  3. 安装步骤中需要选择:

    • NVM安装路径(默认为C:\Users\{用户名}\AppData\Roaming\nvm,可自定义修改)
      在这里插入图片描述

    • Node.js符号链接路径(默认为C:\Program Files\nodejs,建议是放在对应的nvm后面)
      在这里插入图片描述

  4. 完成安装后,打开dos命令提示符或PowerShell测试安装是否完成

正常按照上面的安装流程是会把环境变量自己安装上去的

Mac/Linux系统

  1. 使用curl安装

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
    

    使用wget安装

    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
    
  2. 配置环境变量

    安装脚本会自动尝试添加下面的代码到正确的配置文件(~/.bash_profile, ~/.zshrc, /.profile或/.bashrc)。如果没有,请手动添加:

    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # 加载nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # 加载bash补全
    
  3. 使配置生效

    source ~/.bashrc  # 或您使用的配置文件
    
  4. 验证安装

    nvm --version
    

    如果显示版本号,则安装成功。

第三步:配置阿里云镜像加速

国内用户在使用NVM安装Node.js时可能会遇到下载速度慢的问题。配置阿里云镜像源可以大幅提升下载速度。

Windows系统

在这里插入图片描述

  1. 在NVM安装目录找到settings.txt文件(默认在C:\Users\{用户名}\AppData\Roaming\nvm目录下,我这里是安装在了D盘)
  2. 编辑此文件,添加以下内容:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

Mac/Linux系统

  1. 配置npm镜像

    echo "registry=https://registry.npmmirror.com/" > ~/.npmrc
    
  2. 配置NVM镜像

    ~/.bashrc~/.zshrc文件中添加:

    export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
    export NVM_NPM_MIRROR=https://npmmirror.com/mirrors/npm
    
  3. 使配置生效

    source ~/.bashrc  # 或source ~/.zshrc
    

第四步:使用NVM安装Node.js

现在NVM已安装完成,让我们安装并管理Node.js版本。

查看可用的Node.js版本

nvm ls-remote  # Mac/Linux
nvm list available  # Windows

在这里插入图片描述

安装最新的LTS(长期支持)版本

nvm install --lts

查看当前已经安装的node

nvm ls

在这里插入图片描述

安装特定版本

nvm install 16.20.0  # 安装Node.js 16.20.0版本

设置默认使用的版本

nvm alias default 16.20.0  # 将16.20.0设为默认版本

切换Node.js版本

nvm use 14.21.3  # 切换到14.21.3版本

在这里插入图片描述

第五步:配置node_global和node_cache

为了更好地管理全局安装的npm包和缓存,我们应该自定义这些目录。

Windows系统

  1. 创建自定义目录

    mkdir "C:\Dev\node_global"
    mkdir "C:\Dev\node_cache"
    
  2. 配置npm使用这些目录
    这个目录可以自定义,但是后面的node_globalnode_cache最好统一

     npm config set prefix "D:\environment\nvm\node_global" 
    

    执行完上面的就执行下面的

     npm config set cache "D:\environment\nvm\node_cache"
    

    上面的D:\environment\nvm可替换,我是为了方便nvm的管理,所以和nvm相关的都设置在了一块
    在这里插入图片描述

Mac/Linux系统

  1. 创建自定义目录

    mkdir -p ~/node_global
    mkdir -p ~/node_cache
    
  2. 配置npm使用这些目录

    npm config set prefix ~/node_global
    npm config set cache ~/node_cache
    
  3. 更新环境变量
    ~/.bashrc~/.zshrc中添加:

    export PATH="$HOME/node_global/bin:$PATH"
    export NODE_PATH="$HOME/node_global/lib/node_modules"
    
  4. 使配置生效

    source ~/.bashrc  # 或source ~/.zshrc
    

验证配置

# 验证npm全局配置
npm config get prefix  # 应显示设置的node_global路径
npm config get cache   # 应显示设置的node_cache路径

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7ac1627492434c008a7b19e8d45904ce.png)


# 测试全局安装
npm install -g yarn
yarn --version  # 检查是否安装成功并可以正常使用

NVM常用命令速查表

命令描述
nvm ls列出已安装的Node.js版本
nvm ls available查看可安装的版本(Windows)
nvm ls-remote查看可安装的版本(Mac/Linux)
nvm install <版本>安装指定版本
nvm install --lts安装最新LTS版本
nvm uninstall <版本>卸载指定版本
nvm use <版本>切换到指定版本
nvm current显示当前使用的版本
nvm alias default <版本>设置默认版本
nvm run <版本> app.js使用指定版本运行脚本

常见问题与解决方案

1. nvm命令未找到

Windows:

  • 重新安装NVM并确保系统环境变量设置正确
  • 检查Path环境变量是否包含NVM安装路径

Mac/Linux:

  • 确保配置文件(/.bashrc或/.zshrc)中包含NVM初始化代码
  • 执行source ~/.bashrc使配置生效
  • 检查NVM安装目录权限:ls -la ~/.nvm

2. npm全局安装的模块无法使用

  • 检查环境变量PathNODE_PATH是否正确设置
  • 确认全局模块安装在node_global目录下
  • Windows用户可能需要以管理员权限运行命令提示符

3. 下载Node.js速度慢

  • 确保已正确配置阿里云镜像
  • Windows用户检查settings.txt文件的镜像配置
  • Mac/Linux用户检查环境变量NVM_NODEJS_ORG_MIRRORNVM_NPM_MIRROR的设置

4. 切换版本后npm命令失效

每次安装新版本Node.js后,需要重新安装全局npm包:

nvm use <版本>
npm install -g npm  # 更新npm到最新版
# 安装其他常用全局包
npm install -g yarn rimraf serve

总结

通过本文的指南,你现在应该已经:

  1. ✅ 彻底卸载了旧版Node.js
  2. ✅ 成功安装了NVM
  3. ✅ 配置了阿里云镜像源加速下载
  4. ✅ 学会了如何安装和切换Node.js版本
  5. ✅ 自定义了node_global和node_cache目录
  6. ✅ 掌握了常用的NVM命令

使用NVM管理Node.js版本将大大提高你的开发效率,特别是在需要处理多个项目且它们依赖不同Node.js版本的情况下。

你有关于NVM的其他问题或使用技巧吗?欢迎在评论区留言分享!


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

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

相关文章

(二)毛子整洁架构(CQRS/Dapper/领域事件处理器/垂直切片)

文章目录 项目地址一、Application 层1.1 定义CQRS的接口以及其他服务1. Command2. IQuery查询3. 当前时间服务接口4. 邮件发送服务接口 1.2 ReserveBooking Command1. 处理传入的参数2. ReserveBookingCommandHandler3. BookingReservedDomainEvent 1.3 Query使用Sql查询1. 创…

如何修改MySQL数据库密码

文章目录 一、忘记数据库密码该如何修改1. 关闭数据库的服务2.跳过安全检查3. 重置密码4.查询用户是否存在5.退出验证密码是否正确 二、未忘记密码该如何修改密码1.直接修改密码2.登录mysql 时间久了&#xff0c;忘记数据库密码了。。。。。 一、忘记数据库密码该如何修改 1. …

【Python】mat npy npz 文件格式

1、简介 MAT 文件和 NP&#xff08;.npy 或 .npz&#xff09;文件是两种不同的格式&#xff0c;用于存储数组数据。它们分别由 MATLAB 和 NumPy 开发&#xff0c;主要用于各自环境中的数据存储和交换。以下是这两种格式的主要区别&#xff1a; 1.1 格式和用途 MAT 文件&…

SpringBoot快速入门WebSocket(​​JSR-356附Demo源码)

现在我想写一篇Java快速入门WebSocket,就使用 JSR-356的websocket,我想分以下几点, 1. websocket介绍, 1.1 介绍 什么是WebSocket&#xff1f;​​ WebSocket 是一种基于 ​​TCP​​ 的​​全双工通信协议​​&#xff0c;允许客户端和服务器在​​单个长连接​​上实…

【安装配置教程】ubuntu安装配置Kodbox

目录 一、引言 二、环境配置 1. 服务器配置​ 2. 必备组件​ 三、安装基础环境​ 1. 安装 PHP 8.1 及扩展​ 2. 安装 MySQL 数据库 3.安装 Redis&#xff08;可选&#xff0c;提升缓存性能&#xff09; 4. 配置nginx文件 4.1. 创建 Kodbox 站点目录​ 4.2. 编写 Ng…

LabVIEW车牌自动识别系统

在智能交通快速发展的时代&#xff0c;车牌自动识别系统成为提升交通管理效率的关键技术。本案例详细介绍了基于 LabVIEW 平台&#xff0c;搭配大恒品牌相机构建的车牌自动识别系统&#xff0c;该系统在多个场景中发挥着重要作用&#xff0c;为交通管理提供了高效、精准的解决方…

c语言第一个小游戏:贪吃蛇小游戏01

hello啊大家好 今天我们用一个小游戏来增强我们的c语言&#xff01; 那就是贪吃蛇 为什么要做一个贪吃蛇小游戏呢&#xff1f; 因为这个小游戏所涉及到的知识有c语言的指针、数组、链表、函数等等可以让我们通过这个游戏来巩固c语言&#xff0c;进一步认识c语言。 一.我们先…

[项目总结] 抽奖系统项目技术应用总结

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

机器视觉的平板电脑屏幕组件覆膜应用

在现代智能制造业中&#xff0c;平板电脑屏幕组件覆膜工序是确保产品外观和功能完整性的重要环节。随着技术的进步&#xff0c;传统的覆膜方式已经无法满足高速度、高精度的生产需求。而MasterAlign视觉系统的出现&#xff0c;将传统覆膜工艺转变为智能化、自动化的生产流程。在…

更换内存条会影响电脑的IP地址吗?——全面解析

在日常电脑维护和升级过程中&#xff0c;许多用户都会遇到需要更换内存条的情况。与此同时&#xff0c;不少用户也担心硬件更换是否会影响电脑的网络配置&#xff0c;特别是IP地址的设置。本文将详细探讨更换内存条与IP地址之间的关系&#xff0c;帮助读者理解这两者之间的本质…

VMware安装CentOS Stream10

文章目录 安装下载iso文件vmware安装CentOS Stream创建新虚拟机安装CentOS Stream10 安装 下载iso文件 官方地址&#xff1a;跳转链接 vmware安装CentOS Stream 创建新虚拟机 参考以下步骤 安装CentOS Stream10 指定ISO文件 开启虚拟机选择Install CentOS Stream 10 鼠…

基于Dify实现对Excel的数据分析

在dify部署完成后&#xff0c;大家就可以基于此进行各种应用场景建设&#xff0c;目前dify支持聊天助手&#xff08;包括对话工作流&#xff09;、工作流、agent等模式的场景建设&#xff0c;我们在日常工作中经常会遇到各种各样的数据清洗、格式转换处理、数据统计成图等数据分…

资产月报怎么填?资产月报填报指南

资产月报是企业对固定资产进行定期检查和管理的重要工具&#xff0c;它能够帮助管理者了解资产的使用情况、维护状况和财务状况&#xff0c;从而为资产的优化配置和决策提供依据。填写资产月报时&#xff0c;除了填报内容外&#xff0c;还需要注意格式的规范性和数据的准确性。…

MIT XV6 - 1.3 Lab: Xv6 and Unix utilities - primes

接上文 MIT XV6 - 1.2 Lab: Xv6 and Unix utilities - pingpong primes 继续实验&#xff0c;实验介绍和要求如下 (原文链接 译文链接) : Write a concurrent prime sieve program for xv6 using pipes and the design illustrated in the picture halfway down this page and…

从前端视角看网络协议的演进

别再让才华被埋没&#xff0c;别再让github 项目蒙尘&#xff01;github star 请点击 GitHub 在线专业服务直通车GitHub赋能精灵 - 艾米莉&#xff0c;立即加入这场席卷全球开发者的星光革命&#xff01;若你有快速提升github Star github 加星数的需求&#xff0c;访问taimili…

Docker中运行的Chrome崩溃问题解决

问题 各位看官是否在 Docker 容器中的 Linux 桌面环境&#xff08;如Xfce&#xff09;上启动Chrome &#xff0c;遇到了令人沮丧的频繁崩溃问题&#xff1f;尤其是在打开包含图片、视频的网页&#xff0c;或者进行一些稍复杂的操作时&#xff0c;窗口突然消失&#xff1f;如果…

【沉浸式求职学习day36】【初识Maven】

沉浸式求职学习 Maven1. Maven项目架构管理工具2.下载安装Maven3.利用Tomcat和Maven进入一个网站 Maven 为什么要学习这个技术&#xff1f; 在Java Web开发中&#xff0c;需要使用大量的jar包&#xff0c;我们手动去导入&#xff0c;这种操作很麻烦&#xff0c;PASS&#xff01…

【音视频工具】MP4BOX使用

这里写目录标题 使用介绍 使用 下面这个网站直接使用&#xff1a; MP4Box.js - JavaScript MP4 Reader/Fragmenter (gpac.github.io) 介绍 MMP4Box 是 GPAC 项目开发的一款命令行工具&#xff0c;专门用于处理 MP4 格式多媒体文件&#xff0c;也可操作 AVI、MPG、TS 等格…

Linux中常见开发工具简单介绍

目录 apt/yum 介绍 常用命令 install remove list vim 介绍 常用模式 命令模式 插入模式 批量操作 底行模式 模式替换图 vim的配置文件 gcc/g 介绍 处理过程 预处理 编译 汇编 链接 库 静态库 动态库&#xff08;共享库&#xff09; make/Makefile …

flow-matching 之学习matcha-tts cosyvoice

文章目录 matcha 实现cosyvoice 实现chunk_fmchunk_maskcache_attn stream token2wav 关于flow-matching 很好的原理性解释文章&#xff0c; 值得仔细读&#xff0c;多读几遍&#xff0c;关于文章Flow Straight and Fast: Learning to Generate and Transfer Data with Rectifi…