nvm实现nodejs的版本管理

 部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果。

NVM安装
nvm是什么
nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。

注意:确保之前nodeJs卸载干净(安装路径以及环境变量,都要清理干净,否则安装后无效)

一、NVM的安装和配置 

 1、下载地址:  

Releases · coreybutler/nvm-windows · GitHub

2、安装

自定义安装路径

其他的一直next ,输入邮件步骤直接跳过

image-20231117105855047

.

image-20231117110141183

.

3、手动配置环境变量

如果使用的exe安装,此步骤忽略。使用zip安装,则需要手动配置环境变量。

4、base command【主要验证 nvm 是否安装成功】

# 查看 nvm 版本,version 可简写成 小v
nvm version
nvm v
# 显示 node 是运行在 32 位还是 64 位
nvm arch

重头戏来啦

# 显示已经安装的列表,list 可简化为 ls
nvm list
# 显示远程可安装的列表,list 也可简化为 ls
nvm list available
# 卸载指定版本 node
nvm uninstall [version]
# 使用指定版本 node
nvm use [version]

image-20231116105530304

.

image-20231116105919918

.

玩玩就好了,基本不会用到

# 开启 node.js 版本管理
nvm on
# 关闭 node.js 版本管理
nvm off

image-20231116104926531

5、configure taobao mirror【配置下载镜像】

在 nvm 的安装路径下,找到 settings.txt,在后面加上这两行,设置国内淘宝镜像源:

node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

提醒
阿里云开源镜像站:

https://npm.taobao.org/【该域名在 2022.06.30 号正式下线和停止 DNS 解析,新域名npmmirror.com】

image-20231116110240298

.

image-20240202205301489

问题:为什么要配置镜像?

答:配置完国内的镜像后,npm install xxx 的下载速度会很快!

二、node 的安装与配置

1、install node

nvm list available
nvm install 16
nvm list
nvm use 16

小提示:不要安装 node 的奇数版本!LTS 一般就是偶数版本。

image-20231116111322142

.

image-20231117090853114

.

2、修改 npm 默认镜像源【新增内容】

方式一:手动修改

  1. 修改 npm 镜像源为淘宝镜像源
npm config set registry http://registry.npmmirror.com
  1. 检查是否成功
npm config get registry

image-20240202212343592

.

方式二:安装 nrm

前提:需要先安装 node
请参考下 nrm 安装使用教程 这篇文章.

3、配置 node 的 prefix(全局路径)和 cache(缓存路径)

3.1、【非必须,可直接跳过】选择需要使用的 node 版本,新建两个文件夹

image-20231116132013883

.

image-20231116132131610

.每次使用 nvm 安装 node 都需要手动创建这两个文件夹吗?

答:并不是每次都需要自己手动创建,但是第一次推荐你手动创建,以后当你设置 prefix 和 cache 后,系统会自动创建。

node_global:npm install 下载的全局插件

node_cache:node 的缓存

3.2、【关键】设置全局模板(prefix)和缓存文件(cache)的存放路径:

# npm config set cache "%NVM_SYMLINK%\node_cache"
npm config set cache "D:\nvm\nodejs\node_cache"
# npm config set prefix "%NVM_SYMLINK%\node_global"
npm config set prefix "D:\nvm\nodejs\node_global"
# 可编辑 .npmrc 配置文件
npm config edit
# 查看部分 .npmrc 配置信息
npm config ls

image-20231116133715188

.

image-20231116133858389

.

注意:

  1. 引号里面换自己的路径
  2. 引号里面的路径是软链接(nodejs)的路径

每次使用 nvm 安装 node 都需要配置 prefix 和 cache 吗?

答:并不需要每次都设置。配置的 prefix 和 cache 的信息都在 C:\Users\zhuang\.npmrc 文件里

4、配置 node 环境变量(通用配置,仅需一次配置)

版本一:【推荐】简单

image-20231117125538903

.

版本二:【跳过就行】复杂

问题:每次使用 nvm 安装 node 都需要配置环境变量吗?

答:配置时多注意注意 NODE_PATH 值的配置就可以避免多次配置环境变量。不然每次更换 node 都需要配置环境变量。

NVM_HOME:nvm 地址目录

NVM_SYMLINK:nvm 配置 nodejs 的软链接,nvm use 版本号 时会自动创建

安装 nvm 时 NVM_HOME 和 NVM_SYMLINK 一般会自动配置上,不需要我们手动配置,非常舒心!

NODE_PATH:需要万分注意!!!,格式是:NVM_SYMLINK 路径 + \node_global

这样配置的话你就只需要配置一次,以后切换其他版本的 node 时也不需要重新配置 NODE_PATH 环境变量,方便使用。

注意:下图中 NODE_PATH 的值需要手动配置,其中 %NVM_SYMLINK% 需要换上具体的值,然后加上 \node_global

eg. 我的 NODE_PATH 配置为

D:\nvm\nodejs\node_global

image-20231117102641335

.

image-20231117125804868

.

5、配置完成后,输入以下命令进行验证

# 查看 node 版本,若返回版本号,node 可用
node -v
# 查看 npm 版本,若返回版本号,npm 可用
npm -v

如果返回了相应的版本号,则证明成功。

image-20231116131617422

.

三、【选学】扩展:nvm 如何实现 node 任意切换

image-20231117104701081

.

image-20231117105022521

.

image-20231117105328963

.


nvm下载链接、安装教程、nodeJs安装教程: nvm文档手册
nvm常见问题
如果下载node过慢,请更换国内镜像源, 在 nvm 的安装路径下,找到 settings.txt,设置node_mirro与npm_mirror为国内镜像地址。

node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

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

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

相关文章

计算机网络之---RIP协议

RIP协议的作用 RIP (Routing Information Protocol) 协议是一个基于距离矢量的路由协议,它在网络中用来动态地交换路由信息。RIP 是最早的路由协议之一,通常用于小型和中型网络中。它的工作原理简单,易于实现,但在一些大型网络中效…

代理模式详解与应用

代理模式(Proxy Pattern),也称为委托模式或 surrogate 模式,是一种结构型设计模式。它为其他对象提供一个代理以控制对这个对象的访问。通过引入代理对象,可以在不改变原始对象接口的前提下,添加额外的功能…

基于华为ENSP的OSPF接口网络类型深入浅出(4)

本篇技术博文摘要 🌟 OSPF的接口在不同网络类型下的工作方式;不同网络类型下的报文通告方式深入浅出hub-spoke架构 引言 📘 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。我是肾透侧视攻城狮,一名什么都会一…

【计算机网络】什么是网关(Gateway)?

网上冲浪多了,你可以听到过网关(Gateway)这个词,但是却不太清楚网关(Gateway)到底是干什么的、负责网络当中的什么任务,本篇文字将会为你介绍网关(Gateway)的作用&#x…

Linux(Centos 7.6)命令详解:mkdir

1.命令作用 如果目录还不存在,则创建目录(Create the DIRECTORY, if they do not already exist.) 2.命令语法 Usage: mkdir [OPTION]... DIRECTORY... 3.参数详解 OPTION: -m, --modeMODE,创建新目录同时设置权限模式-p, --parents,创…

【深度学习】多目标融合算法(二):底部共享多任务模型(Shared-Bottom Multi-task Model)

目录 一、引言 1.1 往期回顾 1.2 本期概要 二、Shared-Bottom Multi-task Model(SBMM) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 三、总结 一、引言 在朴素的深度学习ctr预估模型中(如DNN),通常以一个行…

TVbox 手机、智能电视节目一网打尽

文章目录 一、简要介绍二、优点三、下载地址 一、简要介绍 TVbox是目前最火爆的多端、多源的电视影音工具,是一款开源的自定义添加站源的影音工具。TVBox,支持电视频道直播。一款TV端影视工具,软件本身不具有任何影视资源,但可以…

2025新春烟花代码(二)HTML5实现孔明灯和烟花效果

效果展示 源代码 <!DOCTYPE html> <html lang"en"> <script>var _hmt _hmt || [];(function () {var hm document.createElement("script");hm.src "https://hm.baidu.com/hm.js?45f95f1bfde85c7777c3d1157e8c2d34";var …

ue5 蒙太奇,即上半身动画和下半身组合在一起,并使用。学习b站库得科技

本文核心 正常跑步动画端枪动画跑起来也端枪 正常跑步动画 端枪动画的上半身 跑起来也端枪 三步走&#xff1a; 第一步制作动画蒙太奇和插槽 第二步动画蓝图选择使用上半身动画还是全身动画&#xff0c;将上半身端枪和下半身走路结合 第三步使用动画蒙太奇 1.开始把&a…

YOLOv8实战人员跌倒检测

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对人员跌倒目标数据集进行训练和优化&#xff0c;该数据集包含丰富人员跌倒图像样…

Java 分布式锁:Redisson、Zookeeper、Spring 提供的 Redis 分布式锁封装详解

&#x1f4da; Java 分布式锁&#xff1a;Redisson、Zookeeper、Spring 提供的 Redis 分布式锁封装详解 在分布式系统中&#xff0c;分布式锁 用于解决多个服务实例同时访问共享资源时的 数据一致性 问题。Java 生态中&#xff0c;有多种成熟的框架可以实现分布式锁&#xff0…

01.02、判定是否互为字符重排

01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串。 在这道题中&#xff0c;我们的任务是判断两个字符串 s1 和 s2 是…

C#进阶-在Ubuntu上部署ASP.NET Core Web API应用

随着云计算和容器化技术的普及&#xff0c;Linux 服务器已成为部署 Web 应用程序的主流平台之一。ASP.NET Core 作为一个跨平台、高性能的框架&#xff0c;非常适合在 Linux 环境中运行。本篇博客将详细介绍如何在 Linux 服务器上部署 ASP.NET Core Web API 应用&#xff0c;包…

【网页自动化】篡改猴入门教程

安装篡改猴 打开浏览器扩展商店&#xff08;Edge、Chrome、Firefox 等&#xff09;。搜索 Tampermonkey 并安装。 如图安装后&#xff0c;浏览器右上角会显示一个带有猴子图标的按钮。 创建用户脚本 已进入篡改猴管理面板点击创建 脚本注释说明 name&#xff1a;脚本名称。…

数据结构之双链表(C语言)

​ 数据结构之双链表&#xff08;C语言&#xff09; 1 链表的分类2 双向链表的结构3 双向链表的节点创建与初始化3.1 节点创建函数3.2 初始化函数 4 双向链表插入节点与删除节点的前序分析5 双向链表尾插法与头插法5.1 尾插函数5.2 头插函数 6 双向链表的尾删法与头删法6.1尾删…

【0x007A】HCI_Write_Secure_Connections_Host_Support命令详解

目录 一、命令概述 二、命令格式及参数 2.1. HCI_Write_Secure_Connections_Host_Support命令格式 2.2. Secure_Connections_Host_Support 三、生成事件及参数 3.1. HCI_Command_Complete事件格式 3.2. Status 四、命令执行流程梳理 4.1. 命令发送阶段 4.2. 命令接收…

第一节 环境搭建

Visual Studio Visual Studio 2019 密码&#xff1a;gd24 组件 安装即可

《Spring Framework实战》4:Spring Framework 文档

欢迎观看《Spring Framework实战》视频教程 概述 历史&#xff0c; 设计理念&#xff0c; 反馈&#xff0c; 开始。 核心技术 IoC 容器、事件、资源、i18n、 验证、数据绑定、类型转换、SpEL、AOP、AOT。 测试 Mock 对象、TestContext 框架、 Spring MVC 测试&#xff0c;…

PyTorch reshape函数介绍

torch.reshape 是 PyTorch 用于改变张量形状的函数之一。它不会改变张量的数据&#xff0c;而是重新组织其元素以适应新的形状。 reshape 的使用 torch.reshape(input, shape) → Tensorinput&#xff1a;输入张量。shape&#xff1a;新形状&#xff0c;使用整数或 -1 指定各维…

Java QueryWrapper groupBy自定义字段,以及List<Map>转List<Entity>

Java queryWrapper groupby自定义字段 String sql "data_id,(select value from lz_html a where a.data_id lz_html.data_id and class_nametest-item-status) status," "(select value from lz_html a where a.data_id lz_html.data_id and class_nametes…