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

nvm的学习

学习 nvm(Node Version Manager) 是掌握 Node.js 开发的关键技能之一。以下是系统的学习路径和实战指南,涵盖从基础到进阶的内容:


一、基础入门

1. nvm 的核心作用
  • 多版本共存:安装和管理多个 Node.js 版本(如 LTS/最新稳定版)。
  • 环境隔离:为不同项目切换独立的 Node 环境,避免依赖冲突。
  • 版本回滚:快速切换到旧版本修复兼容性问题。
2. 安装 nvm
# Linux/macOS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash# Windows(推荐 WSL2 或 PowerShell)
# 下载安装脚本:https://github.com/nvm-sh/nvm/releases/latest/download/install-nvm-wsl2.ps1
# 然后运行脚本:
iex (irm (iwr https://raw.githubusercontent.com/nvm-sh/nvm/master/install-nvm-wsl2.ps1))
3. 验证安装
nvm --version  # 输出 nvm 版本号(如 0.39.7)
node -v       # 查看当前使用的 Node 版本

二、基础命令

1. 版本管理
# 查看已安装的 Node 版本
nvm ls# 查看所有可用版本(包括远程仓库)
nvm ls-remote# 安装最新 LTS 版本
nvm install --lts# 安装特定版本(如 18.19.1)
nvm install 18.19.1# 删除旧版本
nvm uninstall 16.14.0
2. 版本切换
# 切换到指定版本(需先安装)
nvm use 18.19.1# 设置默认版本(全局生效)
nvm alias default 18.19.1# 自动匹配项目版本(需 package.json 中 engines 字段)
cd your-project
nvm use

三、高级技巧

1. 环境变量配置
  • 自动激活:在 Shell 配置文件(如 ~/.zshrc~/.bashrc)中添加:
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    
  • Windows 用户:在 PowerShell 中启用自动加载(需重启终端)。
2. 版本范围支持
  • 语义化版本:安装 18 代表最新 18.x 版本,安装 ~18.12.0 表示安装 18.12.0 及小版本更新。
  • LTS 版本标识符:使用 lts/argon(对应 14.x)、lts/boron(对应 16.x)等。
3. 离线安装
  • 下载离线包后手动安装:
    nvm install /path/to/node-v18.19.1-linux-x64.tar.xz
    

四、实战场景

1. 多个项目并行开发
  • 项目 Apackage.json 中指定 node: "16.14.0"
  • 项目 Bpackage.json 中指定 node: "18.19.1"
  • 切换目录后自动激活对应版本。
2. 修复依赖冲突
  • npm install 报错时,尝试切换 Node 版本:
    nvm use 14.19.1  # 回滚到旧版本测试
    
3. 全局包管理
  • 为每个 Node 版本安装独立的全局包:
    nvm use 18.19.1
    npm install -g create-react-app  # 仅对该版本生效
    

五、故障排除

1. 常见错误
  • 找不到 nvm 命令:确保 Shell 配置文件已正确加载。
  • 下载缓慢/失败:切换淘宝镜像源:
    export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
    nvm install 18.19.1
    
  • 权限问题:在 Linux/macOS 中使用 sudo,或在 Windows 中以管理员权限运行。
2. 日志调试
  • 查看安装日志定位问题:
    nvm install 18.19.1 --verbose  # 输出详细日志
    

六、学习资源

  1. 官方文档:nvm-sh/nvm GitHub
  2. 中文教程:阮一峰的 Node.js 教程
  3. 视频课程:YouTube 搜索《Node Version Manager 教程》

相关文章:

nvm的学习

学习 nvm(Node Version Manager) 是掌握 Node.js 开发的关键技能之一。以下是系统的学习路径和实战指南,涵盖从基础到进阶的内容: 一、基础入门 1. nvm 的核心作用 多版本共存:安装和管理多个 Node.js 版本&#xff…...

haclon固定相机位标定

什么是标定? 工业应用中相机拍到一个mark点的坐标为C1(Cx,Cy),C1点对应的龙门架/机械手等执行端对应的坐标是多少? 标定就是解决这个问题,如相机拍到一个点坐标C1(Cx,Cy)&#xff0c…...

stm32(hal库)学习笔记-时钟系统

在stm32中,时钟系统是非常重要的一环,他控制着整个系统的频率。因此,我们有理由好好学一下时钟系统。 什么是时钟? 时钟是具有周期性的脉冲信号,一般我们常用占空比为50%的方波。可以形象的说,时钟就是单…...

【Java项目】基于SpringBoot的财务管理系统

【Java项目】基于SpringBoot的财务管理系统 技术简介:采用Java技术、SpringBoot框架、MySQL数据库等实现。系统基于B/S架构,前端通过浏览器与后端数据库进行信息交互,后端使用SpringBoot框架和MySQL数据库进行数据处理和存储,实现…...

Qt中如果槽函数运行时间久,避免阻塞主线程的做法

Qt中如果槽函数运行时间久,避免阻塞主线程的做法 一、解决步骤 创建一个工作线程类:继承自QObject,并在其中实现槽函数的逻辑。将工作线程类的实例移动到单独的线程中:通过moveToThread()方法将对象移动到新线程。启动线程&…...

曹操智行构建国内首个全域自研闭环智驾生态

2月28日,曹操出行举办曹操智行自动驾驶平台上线仪式,宣布已成功构建国内首个“F立方”全域自研闭环智驾生态,同时在苏杭两地开启Robotaxi运营试点,并投放搭载吉利最新智驾系统的车辆。 此次试点运营,标志着曹操出行在…...

day02_Java基础

文章目录 day02_Java基础一、今日课程内容二、数组(熟悉)1、定义格式2、基本使用3、了解数组的内存图介绍4、数组的两个小问题5、数组的常见操作 三、方法(熟悉)1、定义格式2、方法重载overload 四、面向对象(掌握&…...

SpringSecurity 实现token 认证

配置类 Configuration EnableWebSecurity EnableGlobalMethodSecurity(prePostEnabledtrue) public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { Bean Override public AuthenticationManager authenticationManagerBean() throws Exception {return s…...

轻松实现语音生成:GPT-SoVITS V2整合包的远程访问操作详解

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS!这款由花儿不哭大佬精心打造的语音克隆神…...

解锁状态模式:Java 编程中的行为魔法

系列文章目录 后续补充~~~ 文章目录 一、状态模式:概念与原理二、状态模式的深度剖析(一)模式定义与核心思想(二)模式结构与角色 三、状态模式的实际应用场景(一)电商系统中的订单状态管理&…...

算法与数据结构(相交链表)

题目 思路 1.哈希集合 因为要求是否存在相交节点,那么我们就可以利用哈希集合先将listA链表里面的所有数据存入,然后访问listB,判断其是否有节点在哈希集合中,若存在,则说明此节点为相交的节点。若遍历完之后仍没有发…...

浅入浅出Selenium DevTools

前言 在自动化测试领域,Selenium一直是主流工具之一。随着前端技术的不断发展,浏览器的功能也在不断丰富。 Selenium 3版本前,一套通用的采集流程如上图所示: 打开Charles,设置Session自动导出频次及导出路径Seleniu…...

软件工程---净室软件工程

净室软件工程是一种软件开发方法,旨在通过形式化的数据和严格的测试来提高软件的可靠性和减少缺陷的数量。它的核心思想是在软件开发过程中最小化或消除软件缺陷,从而提高软件的质量和可靠性。这种方法强调在软件生命周期的早期阶段使用形式化方法进行规…...

OpenHarmony图形子系统

OpenHarmony图形子系统 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。 1.1 轻量系统 简介 图形子…...

如何获取Mac OS 安装盘

发现虚拟机VirtualBox支持Mac虚拟,就想尝试一下。但是发现Mac的安装盘特别难拿到,因此留档。发现有几种方法,最简单的方法,是在有Mac 机器的情况下,直接到App Store里,根据Mac版本的名字查找并下载。另外还…...

【弹性计算】弹性裸金属服务器和神龙虚拟化(一):功能特点

弹性裸金属服务器和神龙虚拟化(一):功能特点 特征一:分钟级交付特征二:兼容 VPC、SLB、RDS 等云平台全业务特征三:兼容虚拟机镜像特征四:云盘启动和数据云盘动态热插拔特征五:虚拟机…...

大白话前端性能优化方法的分类与具体实现

大白话前端性能优化方法的分类与具体实现 一、资源加载优化 1. 压缩与合并文件 大白话解释: 咱们的网页代码里,就像一个房间堆满了东西,有很多没用的“杂物”,比如代码里的空格、注释啥的。压缩文件就是把这些“杂物”清理掉&a…...

Rabbit MQ 高频面试题【刷题系列】

文章目录 一、公司生产环境用的什么消息中间件?二、Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么优缺点?三、解耦、异步、削峰是什么?四、消息队列有什么缺点?五、RabbitMQ一般用在什么场景?六、简单说RabbitMQ有哪些角…...

ES6 特性全面解析与应用实践

1、let let 关键字用来声明变量,使用let 声明的变量有几个特点: 1) 不允许重复声明 2) 块儿级作用域 3) 不存在变量提升 4) 不影响作用域链 5) 暂时性死区 6)不与顶级对象挂钩 在代码块内,使用let命令声明变量之前&#x…...

有关数据库表的冗余字段

有关数据库表的冗余字段 之前看一个开发人员的技术研讨视频,提到了一个数据库表设计中的表拆分字段冗余问题,就是一张表做纵向分表,拆分为a和b以做冷热数据分离存储,但是会有一种情况就是相同的字段值在a,b表中重复出现…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...