当前位置: 首页 > news >正文

nvm 让 Node.js 版本切换更灵活

在这里插入图片描述

有很多小伙伴前端开发进程中,我们常常会遇到不同项目依赖不同版本 Node.js 的情况。我们不可能去卸载重新安装适应的版本去安装依赖或者启动项目。为了避免版本冲突带来的一系列麻烦,在这里给大家推荐一款Node.js 版本管理工具——nvm(Node Version Manager)应运而生。今天,就来重点讲讲在 Windows 系统下如何安装 nvm 以及它的一些常用命令操作。注意要先卸载掉本地nodeJS版本

一、Windows 下 nvm 的安装

  1. 首先,打开浏览器,访问 nvm-windows 的官方 GitHub 仓库:https://github.com/coreybutler/nvm-windows。在页面右侧的“Releases”部分,找到最新版本的下载链接并点击下载安装包。一般文件名类似“nvm-setup.zip”。
  2. 下载完成后,解压安装包。双击运行解压出来的“nvm-setup.exe”安装程序。安装向导开启后,一路点击“Next”即可。不过,这里有个小细节要注意:安装路径最好选择默认路径或者自定义一个全英文且没有空格的路径,例如“C:\Program Files\nvm”,这样可以避免后续可能出现的一些莫名奇妙的错误。
  3. 在安装过程中,安装程序会自动为我们配置系统环境变量,无需我们手动干预。安装完成后,打开命令提示符(CMD)或者 PowerShell,输入“nvm -v”,如果能成功显示出版本号,那就说明 nvm 已经顺利安装到你的 Windows 系统上啦!
    在这里插入图片描述
    在这里插入图片描述

二、nvm 的常用命令详解

(一)安装 Node.js 版本

  1. 查看可用版本:在命令提示符或 PowerShell 中输入“nvm list available”,这会列出所有可以通过 nvm 安装的官方 Node.js 版本。你可以根据项目需求从中挑选合适的版本进行安装。例如:
nvm list available

输出结果可能如下(nodeJS版本号):

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|-------------|-------------|-------------|-------------|
|     18.16.0  |    16.20.0   |   14.21.3   |   0.12.18   |
|     18.15.0  |    16.19.1   |   14.21.2   |   0.12.17   |
|     18.14.2  |    16.19.0   |   14.21.1   |   0.12.16   |
...
  1. 安装指定版本:确定好要安装的版本后,使用命令“nvm install [版本号]”。比如要安装 Node.js 16.20.0,输入:
nvm install 16.20.0

nvm 就会自动从官方源下载并安装该版本,这个过程可能需要一些时间,取决于你的网络速度。安装完成后,就可以使用这个版本的 Node.js 啦。

(二)切换 Node.js 版本

当你进入不同项目目录,需要切换到对应的 Node.js 版本时,nvm 让这一切变得轻而易举。

  1. 切换到已安装版本:在项目根目录下,执行“nvm use [版本号]”。假设当前项目需要 Node.js 14.0.1,而你之前安装过 14.0.1 版本,输入:
nvm use 14.0.1

系统就会切换到 Node.js 14 版本运行环境。如果该版本尚未安装,nvm 会先自动安装再切换,是不是超级贴心?切换完成后,你可以通过“node -v”和“npm -v”命令来确认是否切换成功。
2. 设置默认版本:如果你有一个日常开发中最常用的 Node.js 版本,不想每次打开终端都手动切换,可以将其设置为默认版本。使用命令“nvm alias default [版本号]”。例如:

nvm alias default 16

之后每次打开新的终端窗口,系统就会自动启用 Node.js 16 版本,大大提高开发效率。
在这里插入图片描述

(三)查看已安装版本

想要快速了解自己通过 nvm 安装了哪些 Node.js 版本?输入“nvm list”命令即可。它会列出所有本地已安装的版本,并且当前正在使用的版本前面会有一个“*”号标识,让你一眼就能看清现状。例如:

nvm list18.16.0
* 16.20.014.21.3

这表明当前系统正在使用 Node.js 16.20.0 版本,同时还安装了 18.16.0 和 14.21.3 版本。

(四)卸载 Node.js 版本

如果某个 Node.js 版本不再需要,为了节省磁盘空间,可以使用“nvm uninstall [版本号]”命令将其卸载。比如要卸载 Node.js 14.0.1:

nvm uninstall 14.0.1

nvm 就会将该版本从你的系统中删除~

相关文章:

nvm 让 Node.js 版本切换更灵活

有很多小伙伴前端开发进程中,我们常常会遇到不同项目依赖不同版本 Node.js 的情况。我们不可能去卸载重新安装适应的版本去安装依赖或者启动项目。为了避免版本冲突带来的一系列麻烦,在这里给大家推荐一款Node.js 版本管理工具——nvm(Node V…...

微机惊魂记

春天午后的阳光懒洋洋地洒在教学楼的走廊上,我跟着同学们排着队往四楼的微机教室走去。楼梯间的窗户开着,飘进来阵阵樱花的香气,让人昏昏欲睡。 微机教室在一栋普通的五层教学楼里,墙壁刷着淡绿色的漆,墙角还有些剥落…...

Windows下安装VMware Workstation 17并设置支持MacOS

VMware Workstation 17 介绍 VMware Workstation 17 是 VMware 公司推出的一款强大的桌面虚拟化软件,适用于 Windows 、 Linux 和FreeBSD等操作系统。它允许用户在单一物理计算机上创建、运行和管理多个虚拟机(VM),每个虚拟机都可…...

[MySQL初阶]MySQL(5)内置函数详解

标题:[MySQL初阶]MySQL(5)内置函数详解 水墨不写bug 文章目录 一、日期函数1. current_date()2. current_time()3. current_timestamp()4. date(datetime)5. date_add(date, interval expr unit)6. date_sub(date, interval expr unit)7. dat…...

Linux下安装elasticsearch(Elasticsearch 7.17.23)

Elasticsearch 是一个分布式的搜索和分析引擎,能够以近乎实时的速度存储、搜索和分析大量数据。它被广泛应用于日志分析、全文搜索、应用程序监控等场景。 本文将带你一步步在 Linux 系统上安装 Elasticsearch 7.17.23 版本,并完成基本的配置&#xff0…...

华为云 | 快速搭建DeepSeek推理系统

DeepSeek(深度求索)作为一款国产AI大模型,凭借其高性能、低成本和多模态融合能力,在人工智能领域崛起,并在多个行业中展现出广泛的应用潜力。 如上所示,在华为云解决方案实践中,华为云提供的快速…...

宠物医院台账怎么做,兽医电子处方单模板打印样式,佳易王兽医兽药开方宠物病历填写打印操作教程

一、概述 本实例以佳易王兽医宠物电子处方开单系统版本为例说明,其他版本可参考本实例。试用版软件资源可到文章最后了解,下载的文件为压缩包文件,请使用免费版的解压工具解压即可试用。 软件特点: 多场景处方兼容性针对宠物医…...

STM32之DMA

Flash是主闪存,下载程序的地方,系统存储器出厂自动写入,不许修改。系统存储器是存储Bootloader,选项字节存的是flash的读保护,写保护,还有看门狗等。运行内存SRAM存的临时变量,也就是程序中定义…...

用低代码平台集成人工智能:无需专业开发也能实现智能化

引言:人工智能的普及与企业需求 随着人工智能(AI)技术的飞速发展,越来越多的企业开始意识到其在提升运营效率、优化客户体验和推动业务创新方面的巨大潜力。从智能客服到自动化决策支持,从数据分析到个性化推荐&#x…...

UI自动化:利用百度ocr识别解决图形验证码登录问题

相信大家在做自动化测试过程中都遇到过图形验证码的问题,最近我也是遇到了,网上搜了很多方法,最简单的方法无非就是去掉图形验证码或者设置一个万能验证码,但是这个都需要开发来帮忙解决,对于我们这种自学的人来说就不…...

1236 - 二分查找

题目描述 请在一个有序递增数组中(不存在相同元素),采用二分查找,找出值 xx 的位置,如果 xx 在数组中不存在,请输出 -1 ! 输入 第一行,一个整数 nn ,代表数组元素个数…...

MARL零样本协调之Fictitious Co-Play学习笔记

下列引用来自知乎作者Algernon 知乎link FCP作为ZSC领域两阶段训练方法的开创者 论文《Collaborating with Humans without Human Data》来自 NeurIPS 2021。这篇论文提出 Fictitious Co-Play (FCP) 来解决 ZSC 问题。论文认为,ZSC 的第一个重要问题是对称性&#x…...

设计模式 + java8方法引用 实现任意表的过滤器

会用到下面2个依赖&#xff0c;原因是在今天的案例中&#xff0c;我想在我代码中使用上Entity::getFieldName 这种形式 LambdaQueryWrapper<ApplicationDashboard> queryWrapper new LambdaQueryWrapper<>(); queryWrapper.eq(ApplicationDashboard::getAppCode,…...

thingsboard edge 在windows 环境下的配置

按照官方文档&#xff1a;Installing ThingsBoard Edge on Windows | ThingsBoard Edge&#xff0c;配置好java环境和PostgreSQL。 下载对应的windows 环境下的tb-edge安装包。下载附件 接下来操作具体如下 步骤1&#xff0c;需要先在thingsboard 服务上开启edge 权限 步骤2…...

OpenAI Whisper:开启语音转文本的智能时代

在人工智能技术飞速发展的今天,OpenAI推出的Whisper语音识别系统正悄然改变着人类与机器的交互方式。作为一款开源的AI驱动语音转文本工具,Whisper凭借其跨语言能力、高精度识别和灵活的生态系统,成为开发者和普通用户共同追捧的技术标杆。 核心技术与突破 Whisper基于深度…...

OpenHarmony4.0_Linux环境搭建

查看链接&#xff1a;OpenHarmony4.0_Linux环境搭建https://www.yuque.com/xinzaigeek/jishu/fs9msruqhd5nhw4i...

道可云人工智能每日资讯|亚马逊云业务部门成立智能体人工智能团队

道可云元宇宙每日简报&#xff08;2025年3月6日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 《杭州市富阳区未来产业培育行动计划(2025-2026年)》发布 3月3日&#xff0c;杭州市富阳区经信局正式发布了《杭州市富阳区未来产业培育行动计划(2025-2026年)》&…...

Java-servlet(四)详细讲解Servlet类层次结构与生命周期

Java-servlet&#xff08;四&#xff09;详细讲解Servlet和生命周期 前言一、Servlet类层次结构1.Servlet包2.Servlet 与 ServletConfig 与 Serializable 的关系1. 三者分别是什么2. 三者之间的关系 3.如何让类具有 Servlet 功能 二、Servlet 生命周期1.初始化阶段2.服务阶段3.…...

python基础课程整理--字典的基础

字典的特点 定义&#xff1a;使用花括号 {} 包裹&#xff0c;存储键值对&#xff08;key-value pairs&#xff09;。特点&#xff1a; 无序&#xff1a;字典中的元素没有固定的顺序&#xff0c;但可以通过键来访问。可变&#xff1a;字典中的键值对可以被添加、修改或删除。键…...

doris: MySQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。 使用须知​ 要连接到 MySQL 数据库&#xff0c;您需要 MySQL 5.7, 8.0 或更高版本 MySQL 数据库的 JDBC 驱动程序&#xff0c;您可以从 Maven 仓库下载最新或指定版本的…...

推荐一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目

Kotlin Multiplatform Mobile&#xff08;KMM&#xff09;已经从一个雄心勃勃的想法发展成为一个稳定而强大的框架&#xff0c;为开发人员提供了在多个平台上无缝共享代码的能力。通过最近的稳定版本里程碑&#xff0c;KMM已成为跨平台开发领域的改变者。 环境设置 带有Kotli…...

Tomcat 新手入门指南

Tomcat 新手入门指南 Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器&#xff0c;广泛用于部署和运行 Java Web 应用程序。以下是 Tomcat 的入门指南&#xff0c;帮助你快速上手。 1. 安装 Tomcat 步骤 1: 下载 Tomcat 访问 Apache Tomcat 官网。选择适合的版…...

游戏引擎学习第138天

仓库:https://gitee.com/mrxiao_com/2d_game_3 资产&#xff1a;game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程&#xff0c;从像素渲染到不使用GPU的方式&#xff0c;我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…...

c++ 类特殊成员函数的编译器隐式声明规则

c 类特殊成员函数的编译器隐式声明规则 特殊成员函数编译器隐式声明规则关键术语说明&#xff1a;核心规则总结&#xff1a;示例场景&#xff1a; 特殊成员函数 编译器隐式声明规则 用户声明的成员函数默认构造函数析构函数拷贝构造函数拷贝赋值移动构造函数移动赋值无声明默…...

综合使用pandas、numpy、matplotlib、seaborn库做数据分析、挖掘、可视化项目

目录 1.结构化数据挖掘 1.1依赖库导入和数据读取 1.2各品牌机型及售价统计 1.3视频录制规格与价格关联性分析 2.结构化数据预处理 2.1筛选特征 2.2特征标签归一化及编码 1.结构化数据挖掘 1.1依赖库导入和数据读取 导入必要的依赖库&#xff0c;读取 csv 格式数据集转化为 Data…...

day21-API(算法,lambda,练习)

常见的七种查找算法&#xff1a; ​ 数据结构是数据存储的方式&#xff0c;算法是数据计算的方式。所以在开发中&#xff0c;算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词&#xff0c;如果各位铁粉有疑惑&#xff0c;可以先看一下哥们后面录制的数据结构…...

Linux : 进程地址空间

目录 一 前言 二 进程地址空间是什么 1.现象 2.虚拟地址空间 3. 现象解释 4. 写时拷贝 三 为什么要存在进程地址空间 四 进程地址空间是如何实现的 1 操作系统如何管理进程地址空间 一 前言 进程地址空间图&#xff1a; 在学习C语言的内存管理的时候&#xff0c;我…...

wordpress鼠标特效笔记+npm问题解决

在WordPress网站上添加鼠标点击特效和网页背景特效_wordpress鼠标特效-CSDN博客 学习设置文章浏览量的插件超详细图解&#xff1a;如何使用 WordPress搭建一个个人博客&#xff1f;-CSDN博客 ------------------2025.03.06------------------------------- npm 运行时报错“因…...

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG 本文主要介绍以下内容: 嵌入式模型简介。使用 DocumentReader 加载数据。在 VectorStore 中存储 Embedding。实现 RAG(Retrieval-Augmented Generation,检索增强生成),又名 Prompt Stuffing。你可以在 GitHub…...

Spring Boot 缓存最佳实践:从基础到生产的完整指南

Spring Boot 缓存最佳实践&#xff1a;从基础到生产的完整指南 引言 在现代分布式系统中&#xff0c;缓存是提升系统性能的银弹。Spring Boot 通过 spring-boot-starter-cache​ 模块提供了开箱即用的缓存抽象&#xff0c;但如何根据业务需求实现灵活、可靠的缓存方案&#xf…...

vue3,Element Plus中隐藏树el-tree滚动条

el-tree&#xff0c;节点过多&#xff0c;默认会出现垂直滚动条&#xff0c;显得不美观 可以使用隐藏组件 el-scrollbar 将 el-tree 包裹&#xff0c;就可以隐藏垂直滚动条 <el-scrollbar> <el-tree> ... </el-tree> </el-scrollbar> /* 滚动条禁用鼠…...

《机器学习数学基础》补充资料:过渡矩阵和坐标变换推导

尽管《机器学习数学基础》这本书&#xff0c;耗费了比较长的时间和精力&#xff0c;怎奈学识有限&#xff0c;错误难免。因此&#xff0c;除了在专门的网页&#xff08; 勘误和修订 &#xff09;中发布勘误和修订内容之外&#xff0c;对于重大错误&#xff0c;我还会以专题的形…...

掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升

前言&#xff1a; 在上一篇文章中&#xff0c;我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型&#xff08;LLM&#xff09;与提示模板&#xff08;Prompt Template&#xff09;相结合&#xff0c;为模型交互逻辑的封装提供了一种简洁而高效的方式…...

Linux——Docker容器内MySQL密码忘记了如何查看

目录 查看正在运行的MySQL的容器ID 方法一&#xff1a;查看MySQL容器的日志里的密码 方法二&#xff1a;通过环境变量密码登录 方法三&#xff1a;修改密码 查看正在运行的MySQL的容器ID docker ps 方法一&#xff1a;查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...

深入剖析 Kubernetes 弹性伸缩:HPA 与 Metrics Server

引言 在 Kubernetes (K8s) 集群中&#xff0c;如何根据应用的实际负载自动调整 Pod 数量&#xff0c;实现资源的弹性利用&#xff0c;是保障服务稳定性和成本效益的关键。Horizontal Pod Autoscaler (HPA) 和 Metrics Server 正是实现这一目标的核心组件。本文将深入探讨 HPA …...

Qt5 C++ QMap使用总结

文章目录 功能解释代码使用案例代码解释注意事项代码例子参考 功能解释 QList<T> QMap::values() const Returns a list containing all the values in the map, in ascending order of their keys. If a key is associated with multiple values, all of its values wi…...

如何改变怂怂懦弱的气质(2)

你是否曾经因为害怕失败而逃避选择&#xff1f;是否因为不敢拒绝别人而让自己陷入困境&#xff1f;是否因为过于友善而被人轻视&#xff1f;如果你也曾为这些问题困扰&#xff0c;那么今天的博客就是为你准备的。我们将从行动、拒绝、自我认知、实力提升等多个角度&#xff0c;…...

【CVTE】嵌入式软件开发-Linux方向{一面}

文章目录 数组和链表的区别&#xff1f;特点&#xff1f;使用场景&#xff1f;**1. 数组&#xff08;Array&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **2. 链表&#xff08;Linked List&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **3. 数…...

自律linux 第 35 天

之前学习了UDP编程&#xff0c;UDP是可以实现多个用户向一个用户发送的&#xff0c;但是TCP一个服务端在同一时刻只能对应一个客户端&#xff0c;因为TCP的通信是使用管道通信的&#xff0c;如果要使用TCP实现一对多的通信&#xff0c;有如下几种办法&#xff1a;多进程&#x…...

云原生系列之本地k8s环境搭建

前置条件 Windows 11 家庭中文版&#xff0c;版本号 23H2 云原生环境搭建 操作系统启用wsl(windows subsystem for linux) 开启wsl功能&#xff0c;如下图 安装并开启github加速器 FastGithub 2.1 下载地址&#xff1a;点击下载 2.2 解压安装文件fastgithub_win-x64.zip 2…...

Cursor实战:Web版背单词应用开发演示

Cursor实战&#xff1a;Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...

每日一题----------枚举的注意事项和细节

注意事项&#xff1a; 1.当我们使用enum关键字开发一个枚举类时&#xff0c;默认会继承Enum类&#xff0c;而且是一个final类&#xff0c;利用javap反编译可查。 2.public static Season SPRING new Season("春天", "温暖");简化成SPRING("春天&qu…...

【Java学习】异常

一、异常的处理过程 异常类的似复刻变量被throw时&#xff0c;会立即中止当前所在的这层方法&#xff0c;即当层方法里throw异常类似复刻变量之后的语句就不会执行了&#xff0c;如果throw异常语句在当层方法中被try{}包裹&#xff0c;则中止就先发生被包裹在了try{}层&#xf…...

使用STM32CubeMX实现LED灯每秒闪烁一次(STM32G070CBT6单片机)

1.打开STM32CubeMX&#xff0c;点击File->New Project&#xff0c;新建一个新工程。 2.搜索芯片型号&#xff0c;选择正确的芯片封装规格&#xff0c;准备对芯片的引脚进行配置。 进行上面的操作后&#xff0c;跳转到如下的页面。 3.选择要配置的引脚进行配置。此处我的LED是…...

FastGPT 引申:如何基于 LLM 判断知识库的好坏

文章目录 如何基于 LLM 判断知识库的好坏方法概述示例 Prompt声明抽取器 Prompt声明检查器 Prompt 判断机制总结 下面介绍如何基于 LLM 判断知识库的好坏&#xff0c;并展示了如何利用声明抽取器和声明检查器这两个 prompt 构建评价体系。 如何基于 LLM 判断知识库的好坏 在知…...

rabbitmq版本升级并部署高可用

RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0&#xff0c;表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了&#xff0c;则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…...

了解JVM

目录 一、内存区域划分 1.方法区&#xff08;元数据区&#xff09; 2.堆 3.栈 4.程序计数器 5.本地方法栈 总结&#xff1a; 二、类加载 1.加载 2.验证 3.准备 4.解析 5.初始化 三、双亲委派模型 四、垃圾回收 1.找到垃圾 1&#xff09;引用计数 2&#xff09;…...

Linux - 工具

一、 代码编译&#xff08;g/gcc&#xff09; 1) 预处理 g –E hello.c –o hello.i宏替换 条件编译 头文件展开 去注释 2) 编译 g –S hello.i –o hello.s检查语法将代码转为汇编 3) 汇编 g –c hello.s –o hello.o将汇编转为二进制代码 4) 链接 g hello.o –o …...

ASP.NET Core 6 MVC 文件上传

概述 应用程序中的文件上传是一项功能&#xff0c;用户可以使用该功能将用户本地系统或网络上的文件上传到 Web 应用程序。Web 应用程序将处理该文件&#xff0c;然后根据需要对文件进行一些验证&#xff0c;最后根据要求将该文件存储在系统中配置的用于保存文件的存储中&#…...

大模型LoRA微调训练原理是什么?

环境&#xff1a; LoRA 问题描述&#xff1a; 大模型LoRA微调训练原理是什么&#xff1f; 解决方案&#xff1a; LoRA&#xff08;Low-Rank Adaptation&#xff09;微调是一种高效的参数优化技术&#xff0c;专门用于大型语言模型的微调&#xff0c;旨在减少计算和内存需求…...