使用 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进行版本管理。希望这些信息对您的开发工作有所帮助!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端JavaScript导出excel,并用excel分析数据,使用SheetJS导出excel

前言:哈喽,大家好,今天给大家分享今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f…

【C高级】有关shell脚本的一些练习

目录 1、写一个shell脚本,将以下内容放到脚本中: 2、写一个脚本,包含以下内容: 1、写一个shell脚本,将以下内容放到脚本中: 1、在家目录下创建目录文件,dir 2、dir下创建dir1和dir2 …

电商ISV 电商SaaS 是什么

Independent Software Vendors的英文缩写,意为“独立软件开发商” 软件即服务(SaaS) 指一种基于云技术的软件交付模式 订阅收费 这些公司叫做ISV软件供应商,通过SaaS服务交付收费 为什么会有电商ISV 从商家角度划分:有独立品牌商家、大商…

【2025】儿童疫苗接种预约小程序(源码+文档+解答)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

猫咪检测系统源码分享

猫咪检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

R语言机器学习算法实战系列(二) SVM算法(Support Vector Machine)

文章目录 介绍原理应用方向下载数据加载R包导入数据数据预处理数据描述数据切割标准化数据设置参数训练模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模型总结系统信息介绍 支持向量机(Support Vector Machine,简称SVM)是一种…

跨站请求伪造(CSRF)漏洞详解

免责申明 本文仅是用于学习检测自己搭建的DVWA靶场环境有关CSRF的原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法…

java项目之在线考试与学习交流网页平台源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线考试与学习交流网页平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于JAVA语言…

ChatGPT搭上langchain的知识库RAG应用,效果超预期

最近利用LangchainChatGPT实现了上传文档实现个人知识库应用的能力,效果比想象得要好。文末大家可以体验一下效果~~ 给大家大致介绍下实现方式,参考了Langchain chatchat。 一、LangchainChatGPT 1、概述 LangChain 是一个强大的框架,可以…

飞驰云联FTP替代方案:安全高效文件传输的新选择

FTP协议广泛应用各行业的文件传输场景中,由于FTP应用获取门槛低、使用普遍,因此大部分企业都习惯使用FTP进行文件传输。然而面临激增的数据量和网络安全威胁的不断演变,FTP在传输安全性与传输性能上有所欠缺,无法满足企业现在的高…

光伏板缺陷红外检测数据集

光伏板缺陷红外检测数据集 包含以下4个数据文件: /train:训练集 /valid:验证集 /test:测试集 README.txt:数据说明 【数据说明】检测目标以Pascal VOC格式进行标注,对每个图像进行以下预处理,统…

Codeforces Round 974 (Div. 3) A-F

封面原图 画师礼島れいあ 下午的ICPC网络赛的难受一晚上全都给我打没了 手速拉满再加上秒杀线段树 这场简直了啊 唯一可惜的是最后还是掉出了1000名 一把上蓝应该没啥希望了吧 A - Robin Helps 题意 侠盗罗宾因劫富济贫而闻名于世 罗宾遇到的 n n n 人,从 1 s …

中泰免签,准备去泰国旅游了吗?《泰语翻译通》app支持文本翻译和语音识别翻译,解放双手对着说话就能翻译。

泰国是很多中国游客的热门选择,现在去泰国旅游更方便了,因为泰国对中国免签了。如果你打算去泰国,那么下载一个好用的泰语翻译软件是很有必要的。 简单好用的翻译工具 《泰语翻译通》App就是为泰国旅游设计的,它翻译准确&#x…

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 请访问原文链接:https://sysin.org/blog/cisco-catalyst-9000/,查看最新版。原创作品,转载请保留出处。 作者主页&…

uniapp中使用picker-view选择时间

picker-view 是 UniApp 中用于展示和选择数据的组件。它适用于创建多列选择器&#xff0c;类似于 iOS 和 Android 系统中的选择器视图。以下是 picker-view 的详细介绍&#xff0c;包括用法、属性和事件。 一 用法 <template><view><picker-view :value"…

机器学习——Stacking

Stacking&#xff1a; 方法&#xff1a;训练多个模型(可以是强模型)&#xff0c;然后将这些模型的预测结果作为新的特征&#xff0c;输入到下一层新的模型&#xff08;可以是多个&#xff09;中进行训练&#xff0c;从而得到最终的预测结果。 代表&#xff1a;Stacking本身并没…

Java多线程Thread及其原理深度解析

文章目录 1. 实现多线程的方式2. Thread 部分源码2.1. native 方法注册2.2. Thread 中的成员变量2.3. Thread 构造方法与初始化2.4. Thread 线程状态与操作系统状态2.4. start() 与 run() 方法2.5. sleep() 方法2.6. join() 方法2.7. interrupt() 方法 本文参考&#xff1a; 线…

OpenCV_最简单的鼠标截取ROI区域

在OpenCV中也存在鼠标的操作&#xff0c;今天我们先介绍一下鼠标中的操作事件 void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata0) setMousecallback参数说明&#xff1a; winname:窗口的名字 onMouse:鼠标响应函数&#xff0c;回调…

接口加解密及数据加解密

目录 一、 加解密方式介绍 1.1 Hash算法加密 1.2. 对称加密 1.3 非对称加密 二、 我们要讲什么&#xff1f; 三、 接口加解密 四、 数据加解密 一、 加解密方式介绍 所有的加密方式我们可以分为三类&#xff1a;对称加密、非对称加密、Hash算法加密。 算法内部的具体实现…

【后端开发】JavaEE初阶—线程的理解和编程实现

前言&#xff1a; &#x1f31f;&#x1f31f;本期讲解多线程的知识哟~~~&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;【后端开发】JavaEE初阶——计算机是如何工作的&#xff1f;&#xff1f;&#xff1f;-CSDN博客 &#x1f308;感兴趣的小伙…