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

发布于 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.pswp.cn/web/79015.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/79015.shtml

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

相关文章

转换算子和行动算子的区别

转换算子和行动算子主要是在分布式计算框架&#xff08;如 Apache Spark&#xff09;里常用的概念&#xff0c;它们在功能、执行机制、返回结果等方面存在明显区别&#xff0c;以下为你详细介绍&#xff1a; 定义与功能 返回结果 如何在使用转换算子和行动算子时避免出现内存溢…

Windows命令行软件管理器:Chocolatey

文章目录 Windows命令行软件管理器&#xff1a;Chocolatey1.Chocolatey使用1.1 安装1.2 常用命令1.3 使用流程 2.常用shell命令汇总 Windows命令行软件管理器&#xff1a;Chocolatey Chocolatey 是一款强大的 Windows 命令行软件管理器&#xff0c;目前在 GitHub 上已斩获 10.…

MySQL 8.0 OCP(1Z0-908)英文题库(11-20)

目录 第11题题目分析正确答案 第12题题目分析正确答案 第13题题目分析正确答案 第14题题目分析正确答案 第15题题目分析正确答案 第16题题目分析正确答案 第17题题目分析正确答案&#xff1a; 第18题题目分析正确答案 第19题题目分析正确答案 第20题题目分析正确答案 第11题 W…

mac 使用 Docker 安装向量数据库Milvus独立版的保姆级别教程

Milvus 特点&#xff1a;开源的云原生向量数据库&#xff0c;支持多种索引类型和GPU加速&#xff0c;能够在亿级向量规模下实现低延迟高吞吐。具有灵活的部署选项和强大的社区支持。 适用场景&#xff1a;适合处理超大规模数据和高性能需求的应用&#xff0c;如图像搜索、推荐…

一款独立于游戏外的键盘源按键辅助工具他来了

一款独立于游戏外的键盘源按键辅助工具 一&#xff01;不需要安装&#xff0c;下载即用 二&#xff01;只要熟悉hekili体系 三&#xff01;略懂wa定制 四&#xff01;知道如何循环并且会自行模拟 五&#xff01;会simc最好 直接就上手了&#xff01; 我们的不是一键宏&…

python学生作业提交管理系统-在线作业提交系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

Spring Boot + Vue 实现在线视频教育平台

一、项目技术选型 前端技术&#xff1a; HTML CSS JavaScript Vue.js 前端框架 后端技术&#xff1a; Spring Boot 轻量级后端框架 MyBatis 持久层框架 数据库&#xff1a; MySQL 5.x / 8.0 开发环境&#xff1a; IDE&#xff1a;Eclipse / IntelliJ IDEA JDK&…

引文索引数据库在科研中的应用

如何利用引文索引数据库高效检索、分析研究论文&#xff0c;发现高水平论文&#xff0c;锁定特定领域的经典文献&#xff1f;如何跟踪最新研究进展&#xff1f; 回放链接 image.png image.png image.png image.png image.png image.png image.png image.png image.png image.pn…

《供应链网络攻击的风险与防范》

中国古语有云&#xff1a;“千里之堤&#xff0c;溃于蚁穴。”供应链攻击正是利用这种系统性弱点发起攻势。近年来&#xff0c;随着国内数字化转型加速&#xff0c;供应链安全问题频发。从某盟删库事件到某头部物流企业数据泄露&#xff0c;从某国产工业软件遭恶意代码植入到某…

ETL介绍及kettle等工具学习

ETL介绍及kettle等工具学习 1. 什么是ETL&#xff1f; ETL&#xff08;Extract, Transform, Load&#xff09;是数据集成领域的核心流程&#xff0c;用于将数据从多个分散的源系统中抽取、清洗、转换后加载到目标数据仓库或数据湖中&#xff0c;以支持分析、报表和决策。其核…

图形渲染+事件处理最终版

基于之前做的项目图形移动处理-CSDN博客添加了相机&#xff0c;透视投影&#xff0c;鼠标控制图形旋转。虽然个人感觉这个项目用的是一个二维的三角形&#xff0c;给他加透视投影和相机意义不大&#xff0c;因为透视投影是近大远小&#xff0c;我这个程序设置了放大缩小的限制&…

G口大带宽服务器线路怎么选

G口大带宽服务器线路选择指南 ​​一、线路类型与特点​​ ​​单线&#xff08;电信/联通/移动&#xff09;​​ ​​优势​​&#xff1a;带宽独享、价格低、延迟稳定&#xff0c;适合单一运营商用户集中场景。​​劣势​​&#xff1a;跨运营商访问延迟高&#xff08;如电信…

HTML10:iframe内联框架

iframe内部框架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>内联框架学习</title> </head> <body> <!--iframe内联框架 src:地址 width-height:高度宽度 --> <iframe…

基于 Spring Boot 瑞吉外卖系统开发(十一)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;十一&#xff09; 菜品启售和停售 “批量启售”、“批量停售”、操作列的售卖状态绑定单击事件&#xff0c;触发单击事件时&#xff0c;最终携带需要修改售卖状态的菜品id以post请求方式向“/dish/status/{params.status}”发送…

springboot war包tomcat中运行报错,启动过滤器异常,一个或多个筛选器启动失败。

错误信息&#xff1a; "level": "ERROR", "thread": "localhost-startStop-1", "class": "o.a.c.c.C.[.[localhost].[/Crmeb-admin]", …

Cursor —— AI编辑器 使用详解

Cursor - The AI Code Editor 一、Cursor 是什么&#xff1f; Cursor 是一款优秀的AI代码编辑器&#xff0c;它内置了 Deepseek-R1、GPT-4、Claude等 AI 模型。 简单说&#xff0c;就是&#xff1a;Cursor VS Code 编辑器 AI 大模型 Cursor 功能特性&#xff08;代码补全、…

在Excel图表添加辅助线

前言&#xff1a;博主最近是有点忙&#xff0c;好吧&#xff0c;就是很忙&#xff0c;但我也不想水文章的&#xff0c;每一篇文章都是本人精心编辑&#xff0c;觉得对大家有用才发布的。而且同一个类型的文章&#xff0c;我基本都会写在同一篇中方便大家集中获取。本来这篇文章…

2025.5.8总结(中期审视)

今日记录&#xff1a; 晚上&#xff0c;主管找我聊了关于中期绩效审视的问题。 首先就是让我汇报上半年的工作进展&#xff0c;汇报完后&#xff0c;感觉体现不出自己的工作量&#xff0c;这确实考验个人的汇报能力。 汇报完工作后&#xff0c;主管开始给我提了一些建设性的…

Excel模版下载文件导入

工作中经常遇到Excel模板下载&#xff0c;然后填好后再导入的情况&#xff0c;简单记录下&#xff0c;方便下次使用 Excel模版下载&#xff08;返回Base64&#xff09; 模板文件存放位置 import java.util.Base64; import org.apache.commons.io.IOUtils; import org.sprin…

SpringBoot 讯飞星火AI WebFlux流式接口返回 异步返回 对接AI大模型 人工智能接口返回

介绍 用于构建基于 WebFlux 的响应式 Web 应用程序。集成了 Spring WebFlux 模块&#xff0c;支持响应式编程模型&#xff0c;构建非阻塞、异步的 Web 应用。WebFlux 使用了非阻塞的异步模型&#xff0c;能够更好地处理高并发请求。适合需要实时数据推送的应用场景。 WebClie…