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 教程》

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

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

相关文章

GPT-4.5实际性能评测:实际探索

摘要 经过数万轮严格测试,GPT-4.5的性能并未超越其前代产品GPT-4。此前发布的《GPT-4.5 一手实测:垃圾》一文中存在不准确描述,在此向读者致歉。尽管GPT-4.5在价格上有所提升且响应速度较慢,但测试结果显示其模型素质并未达到预期…

从UNIX到Linux:操作系统进化史与开源革命

从UNIX到Linux:操作系统进化史与开源革命 一、操作系统:数字世界的基石 1.1 什么是操作系统? 操作系统(OS)是计算机系统的核心管理者,承担着三大核心使命: 硬件指挥官:直接管理C…

如何修改安全帽/反光衣检测AI边缘计算智能分析网关V4的IP地址?

TSINGSEE青犀推出的智能分析网关V4,是一款集成了BM1684芯片的高性能AI边缘计算智能硬件。其内置的高性能8核ARM A53处理器,主频可高达2.3GHz,INT8峰值算力更是达到了惊人的17.6Tops。此外,该硬件还预装了近40种AI算法模型&#xf…

【全栈开发】----Mysql基本配置与使用

本篇是在已下载Mysql的情况下进行的,若还未下载或未创建Mysql服务,请转到这篇: 2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)_mysql8.0.40下载安装教程-CSDN博客 本文对于mysql的操作均使用控制台sql原生代码…

C++ primer plus 第四节 复合类型

本章内容包括: • 创建和使用数组 • 创建和使用 c-风格字符串 • 创建和使用 string 类字符串 • 使用方法getline( )和 get( )读取字符串 • 混合输入字符串和数字 • 创建和使用结构 • 创建和使用共用休 • 创建和使用枚举 • 创建和使用指针 • 使用 new和delete 管理动态…

Java中的泛型类 --为集合的学习做准备

学习目标 ● 掌握在集合中正确使用泛型 ● 了解泛型类、泛型接口、泛型方法 ● 了解泛型上下限 ● 了解基本的使用场景 1.有关泛型 1.1泛型的概念 泛型(Generics)是Java中引入的参数化类型机制,允许在定义类、接口或方法时使用类型参数&a…

VUE3+Vite使用TailwindCSS【若依前后端分离框架】

参考:https://tailwind.nodejs.cn/docs/guides/vite#vue 和 https://blog.csdn.net/hjl_and_djj/article/details/144694485依次运行命令: cnpm install -D tailwindcss3.4.17 postcss autoprefixernpx tailwindcss init -p修改配置文件tailwind.config.…

FFmpeg入门:最简单的音频播放器

FFmpeg入门:最简单的音频播放器 欢迎大家来到FFmpeg入门的第二章,今天只做一个最简单的FFmpeg音频播放器;同样,话不多说,先上流程图 流程图 以上流程和视频播放器的解码过程基本上是一致的; 不同点在于 S…

在Ubuntu下,源码编译安装Python

在Ubuntu下,源码编译安装Python 知识点 知识点1:在 Linux 系统里,/usr 目录通常用于存放一些共享的、只读的程序和数据,是系统安装软件的一个重要位置。而 /usr/src 目录一般是用来存放系统源代码以及一些软件包的源代码的地方 …

《每天读一个JDK源码》之HashMap解读

📌《每天读一个JDK源码》之HashMap解读 🔗源码定位:java.util.HashMap(建议IDE对照阅读) 今天我们来破解Java集合框架中最精妙的艺术品——HashMap!它不仅是面试必考题(出现率99%)&…

【Java项目】基于SpringBoot的Java学习平台

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

使用ChatGPT-Deep Reaserch两步给出文献综述!

文献综述是学术论文写作中不可或缺的一部分,它不仅是对已有研究的梳理和总结,更是为后续研究奠定理论基础的关键步骤。通过文献综述研究者能够全面了解当前研究领域的现状、主要观点和研究方法,从而找到自己研究的切入点和创新点。这一过程需…

java基础知识(理论篇)

一、java介绍 1.1Java语言 Java 是一种广泛使用的、通用的、面向对象的编程语言,Java 的设计目标是“一次编写,到处运行”,这也这意味着 Java 程序可以在任何支持 Java 的平台(如 Windows、Linux、macOS 等)上运行。 …

金融赋能绍兴纺织 民生银行助力外贸中小微企业“走出去”

在浙江绍兴,纺织业作为一张熠熠生辉的产业名片,承载着深厚的历史底蕴与蓬勃的发展活力。这里依傍长三角经济圈,交通网络纵横交错,将原材料产地与广阔市场紧密相连;产业集群高度成熟,上下游产业链完备&#…

综合实验处理表格

新建excel表格,输入信息,另存为csv文件。 利用notepad打开csv文件,可以观察格式 目标:通过编程处理文件,实现对数据的处理,成绩求和以及评价 对数据逐行处理,读一行,处理一行&#…

我和我的通义灵码

我和我的通义灵码 我和我的通义灵码个人版&企业版个人版登录个人版workspace应用场景terminal 企业版登录企业版#team docs 体验总结 我和我的通义灵码 说到通义灵码,作为程序员的我们是最有发言权的。从全国首个AI代码助手-通义灵码公测到现在,不知…

一文学会Volatile关键字

引言 在 Java 多线程实战中,volatile 是一个重要的关键字,用于修饰变量,经常在JUC源码中出现,本文详细解析一下这个关键字的奥秘 1. 基本概念 volatile 关键字的主要作用是保证变量的可见性以及在一定程度上禁止指令重排序。在…

Java测试框架Mockito快速入门

Mockito结合TestNG快速入门 什么是Mockito Mockito 是一个专门用于 Java 的强大测试框架,主要用来创建和管理模拟对象,辅助开发者进行单元测试,具有以下特点和功能: 创建模拟对象:能通过简洁的语法创建类或接口的模…

week 3 - More on Collections - Lecture 3

一、Motivation 1. Java支持哪种类型的一维数据结构? Java中用于在单一维度中存储数据的数据结构,如arrays or ArrayLists. 2. 如何在Java下创建一维数据结构?(1-dimensional data structure) 定义和初始化这些一…

Ubuntu 防火墙iptables和 ufw

文章目录 iptables 和 ufw 的区别Ubuntu 上使用 ufw 配置 iptables 和 ufw 的区别 iptables 和 ufw 是 Linux 系统中用于管理防火墙的工具,但它们的设计目标和使用方式有所不同。 iptables:功能强大,适合高级用户和复杂场景,但配…