使用 nvm 管理 node 版本:如何在 macOS 和 Windows 上安装使用nvm

在这里插入图片描述

🔥 个人主页:空白诗

在这里插入图片描述

文章目录

    • 一、引言
    • 二、nvm的安装与基本使用
      • 2.1 macOS安装nvm
        • 2.1.1 使用 `curl` 安装
        • 2.1.2 使用 Homebrew 安装
      • 2.2 Windows安装nvm
        • 2.2.1 下载 nvm-windows
        • 2.2.2 安装 nvm-windows
      • 2.3 安装node
      • 2.4 切换node版本
    • 三、常见问题及解决方案
      • 问题1:关闭终端后找不到node
      • 问题2:nvm命令找不到
      • 问题3:无法安装特定版本的node
    • 四、总结


在这里插入图片描述

一、引言

在开发 JavaScript 应用时,node 是一个重要的运行环境,而 nvm(Node Version Manager)是管理node版本的利器。

nvm允许我们在同一台计算机上安装和切换多个node版本,极大地提高了开发效率和灵活性。

尽管nvm功能强大,但在使用过程中可能会遇到一些问题和坑。本文将介绍nvm的基本使用方法,并解决一些常见的问题,例如安装node后,使用nvm切换版本成功,但关闭终端后无法找到node的问题等等。


二、nvm的安装与基本使用

2.1 macOS安装nvm

在macOS上,您可以通过以下两种主要方式来安装nvm:使用curlHomebrew

2.1.1 使用 curl 安装

打开终端,运行以下命令下载并安装nvm:

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

安装完成后,您需要加载nvm的环境变量。在终端中运行以下命令:

source ~/.nvm/nvm.sh

将这行命令添加到您的shell启动脚本中(例如~/.bash_profile~/.bashrc~/.zshrc),以便每次启动终端时自动加载nvm:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
2.1.2 使用 Homebrew 安装

如果您更喜欢使用Homebrew,可以按以下步骤操作:

  1. 安装 Homebrew(如果尚未安装)

    打开终端,输入以下命令来安装Homebrew(如果您尚未安装它):

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装 nvm

    使用Homebrew安装nvm:

    brew install nvm
    
  3. 配置环境变量

    Homebrew安装nvm后,您需要将nvm的环境变量添加到您的shell启动脚本中(例如~/.bash_profile~/.bashrc~/.zshrc)。在文件末尾添加以下内容:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$(brew --prefix nvm)/nvm.sh" ] && \. "$(brew --prefix nvm)/nvm.sh"  # This loads nvm
    

    运行以下命令以使更改生效:

    source ~/.bash_profile
    

    或者,对于使用zsh的用户:

    source ~/.zshrc
    

2.2 Windows安装nvm

在Windows上,您可以使用nvm-windows来安装和管理node版本。nvm-windows是nvm的Windows版本,功能类似于macOS和Linux上的nvm。

注意:如果你已经安装了 node ,你需要卸载它,这样在使用不同版本的 node 和从 NPM 注册表安装包时不会导致错误。

2.2.1 下载 nvm-windows

访问nvm-windows的GitHub发布页面,下载最新版本的nvm-setup.exe文件。

在这里插入图片描述

2.2.2 安装 nvm-windows

运行nvm-setup.exe安装程序。安装过程中,您可以选择nvm的安装路径和node的存储路径。

在这里插入图片描述

配置环境变量

安装完成后,nvm-windows会自动配置环境变量。您可以在命令提示符或PowerShell中使用nvm命令。

2.3 安装node

使用nvm安装特定版本的node,例如:

nvm install 18

2.4 切换node版本

安装完毕后,可以使用nvm use命令切换到指定版本:

nvm use 18

验证当前node版本:

node -v

三、常见问题及解决方案

问题1:关闭终端后找不到node

您可能会遇到在终端中使用nvm use 18成功切换到node 18版本,但关闭终端后,再次打开终端时,node版本回到了系统默认的版本,或者node命令找不到。

这个问题通常是由于nvm的环境变量没有正确加载造成的。解决方案如下:

  1. 设置默认版本

    使用 nvm alias default 命令来指定一个默认的node版本。例如,如果您希望每次打开终端时都使用node 18版本,可以运行以下命令:

    nvm alias default 18
    

    这会将node 18设置为nvm的默认版本。

  2. 检查nvm配置

    确保nvm的环境配置在用户的shell启动脚本中。例如,对于bash用户,配置通常在~/.bashrc文件中;对于zsh用户,配置通常在~/.zshrc文件中。您需要确认以下内容存在于您的启动脚本中:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
    

    对于bash用户,添加完后,可以运行:

    source ~/.bashrc
    

    对于zsh用户,添加完后,可以运行:

    source ~/.zshrc
    
  3. 确认nvm脚本路径

    确保nvm的脚本路径设置正确,并且在您的环境变量中。

    export PATH="$HOME/.nvm/bin:$PATH"
    
  4. 重新启动终端

    有时,简单的重新启动终端可以解决问题,确保配置文件的更改已生效。

问题2:nvm命令找不到

在终端中使用nvm命令时,系统提示nvm: command not found

这个问题可能是由于nvm没有正确安装或环境变量没有正确设置。请按以下步骤检查并修复:

  1. 检查安装

    确保nvm已安装在预期的位置。默认情况下,它应安装在用户主目录的.nvm文件夹中。

  2. 检查环境变量

    确保nvm的环境变量在启动脚本中设置正确。请参阅上面“检查nvm配置”部分,确保相应的配置已添加到您的~/.bash_profile~/.bashrc~/.zshrc中。

  3. 重新安装nvm

    如果以上步骤无法解决问题,尝试重新安装nvm。首先删除现有安装:

    rm -rf ~/.nvm
    

    然后按照官方文档重新安装nvm。

问题3:无法安装特定版本的node

使用nvm install安装node版本时,出现错误或安装失败。

  1. 检查nvm版本

    确保使用的nvm版本是最新的。更新nvm可以解决一些兼容性问题:

    nvm install --lts
    
  2. 检查网络连接

    有时,网络问题可能导致下载失败。确保您的网络连接稳定,并尝试重新安装。

  3. 查看错误信息

    阅读错误信息并根据提示进行故障排除。常见问题包括权限问题或依赖包缺失等。


四、总结

nvm是一个强大的工具,可以帮助您轻松管理和切换不同版本的node。

在使用nvm时,了解一些常见问题及其解决方案,将有助于提高开发效率并减少不必要的麻烦。

通过本文的介绍,您应该能够解决大部分与nvm相关的问题,并顺利地在项目中使用nvm进行版本管理。希望这些信息对您的开发工作有所帮助!

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

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

相关文章

2024年数学建模比赛题目及解题代码

目录 一、引言 1. 1竞赛背景介绍 1.1.1数学建模竞赛概述 1.1.2生产过程决策问题在竞赛中的重要性 1.2 解题前准备 1.2.2 工具与资源准备 1.2.3 心态调整与策略规划 二、问题理解与分析 三、模型构建与求解 3.1 模型选择与设计 3.1.1 根据问题特性选择合适的数学模型类…

B/S架构和C/S架构

一、B/S架构(Browser/Server,浏览器/服务器架构) 1. 定义 B/S架构是一种网络架构模式,用户通过Web浏览器来访问应用程序。在这种架构中,客户端主要负责用户交互和显示界面,而服务器则负责业务逻辑和数据处…

鸿蒙OpenHarmony【轻量系统芯片移植案例】标准系统方案之扬帆移植案例

标准系统方案之扬帆移植案例 ​ 本文章是基于瑞芯微RK3399芯片的yangfan开发板,进行标准系统相关功能的移植,主要包括产品配置添加,内核启动、升级,音频ADM化,Camera,TP,LCD,WIFI&a…

观成科技:新版suo5隧道工具加密流量跟踪分析

1、工具简介 suo5是一个高性能的http隧道代理工具,支持全双工半双工模式,具有很高的传输性能,现在越来越多的webshell管理工具与内存马生成工具都支持了生成suo5木马的功能。从v1.1.0版本开始,其TLS协议传输功能中,增…

python学习笔记目录

基于windows下docker安装HDDM-CSDN博客 在python中安装HDDM-CSDN博客(这个办法没安装成功)

青海省基础地理矢量数据

青海是长江、黄河、沧澜江的发源地,因此被誉为“三江源”和“中华水塔”,具有全球独一无二的生态地位。青海省拥有丰富的水资源和生物多样性,对维护亚洲的水资源和生态平衡具有重要作用。 该数据集涵盖了青海省内的主要地理要素,包…

【案例】--mongodb的响应慢思考案例

目录 一、问题现象及思考思路1、问题现象2、思考思路3、问题分析二、对mongodb查询的影响有哪些1、单条数据大,对查询的影响2、mongodb硬件性能,对查询的影响三、分页查询问题及优化策略1、索引有效利用2、基于索引的游标分页3、聚合策略4、减少查询返回的数据量5、缓存机制6…

Linux服务器及应用环境快速部署、调试、迁移、维护、监控

1. 请解释什么是Linux? Linux是一种开源操作系统(Operating System,OS),它最初由Linus Torvalds于1991年创建。自那时起,Linux逐渐发展成为全球最广泛使用的操作系统之一。以下是对Linux的详细解释&#x…

聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展

抢占市场先机︱聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展 随着汽车智能化与电动化的迅猛发展,汽车电子技术、车用功率半导体技术、智能座舱技术、轻量化技术/材料、软件定义汽车、EV/HV技术、测试测量技…

在linux下,找到指定命令对应的路径信息

如果 which 和 whereis 命令都没有找到某个命令的原文件位置,可以尝试以下方法: 一、使用 type 命令 type 命令可以显示一个命令是内置命令还是外部命令,并给出其路径(如果是外部命令)。 例如: type co…

Android架构组件:MVVM模式的实战应用与数据绑定技巧

目录 引言 一、MVVM模式概述 1.1 MVVM模式简介 1.2 MVVM模式的优势 二、MVVM模式的实现 2.1 项目环境配置 2.2 创建MVVM组件 2.2.1 创建数据模型 2.2.2 创建数据仓库 2.2.3 创建ViewModel 2.2.4 创建布局文件 2.2.5 创建RecyclerView适配器 2.3 在Activity中绑定V…

deepspeed安装报错 No module named ‘dskernels‘解决

pip install deepseek安装报错 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/61/e6/04e2f2de08253e6b779fe7706f2e06d8fb48353e1d33a2fd7805062213d4/deepspeed-0.12.3.tar.gz (1.2 MB)Preparing metadata (setup.py) ... errorerror: subprocess-exited-with-err…

笔记9.18

线程之间的通信是指在多线程程序中,不同线程之间如何交换数据或协调工作。这种通信对于实现复杂的并发程序是至关重要的。以下是几种常见的线程间通信方式: 共享内存: 这是最直接的方式,多个线程通过读写同一块内存区域&#xff0…

bprc二次封装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、封装的思想二、封装单个服务的信道管理类1.成员变量2.成员函数 三、封装总体的服务信道管理类1.成员变量2.成员函数 四.etcd和brpc联合测试1.服务注册客户端2.服…

透明屏幕有普通屏幕有哪些优点

针对透明玻璃屏幕的安装方案,我们需要综合考虑多个因素,包括安装环境、屏幕尺寸、重量、安全要求以及视觉效果等。以下是一个概括性的安装方案框架,供您参考: 一、前期准备 1.1 需求分析 明确透明玻璃屏幕的使用场景&#xff08…

聊聊对别人表示真正的关注

在工作和生活中,那些重要人士所得到的关注已经很多了,所以你不能只关注那些重要的人,对那些保洁门卫、前台等也需要我们给予真心的关注。 他们可使你的生活正常有序,但却经常被你忽略,见面打个招呼时常跟他们聊一聊,这…

C++速通LeetCode中等第4题-三数之和

解题思路&#xff1a;先排序&#xff0c;固定第一个数&#xff0c;用两个指针分别指向右侧剩余数列的两端&#xff0c;右侧向左移动直到两指针重合&#xff0c;看三数合有没有解&#xff0c;指针遇到相同数字跳过。 class Solution { public:vector<vector<int>> …

Spring Session

Session 共享问题 在 Web 项目开发中&#xff0c;Session 会话管理是一个很重要的部分&#xff0c;用于存储与记录用户的状态或相关的数据。 通常情况下 session 交由容器&#xff08;tomcat&#xff09;来负责存储和管理&#xff0c;但是如果项目部署在多台 tomcat 中&#…

【Unity3D小技巧】Unity3D中使用EventTrigger对3D物体的响应

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 1-1、EventTrigger简介 EventTrigger是Unity中用于处理UI事件的一个组件。它允许我们为UI元…

什么是区块链,以及应用场景

一、引言 在当今数字化时代&#xff0c;区块链技术作为一种新兴的分布式账本技术&#xff0c;正逐渐引起广泛关注。它具有去中心化、不可篡改、透明性等特点&#xff0c;为解决传统中心化系统中的信任问题提供了新的思路。本文将介绍区块链的基本概念、工作原理以及其在各个领域…