安装配置nvm-windows对Node.js与npm进行版本控制

news2024/9/21 14:51:06

一、nvm

由于Node.js版本原因,可能会出现一些错误,如IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported。而且不同的项目,所采用的Node.js的版本不同,重新卸载安装配置,太过繁琐。所以可以使用nvm来动态灵活管理Node.js的版本

#nvm:管理Node.js版本的工具,可以管理多个Node.js版本以及其对应的npm。

#Node.js:一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个开源的、跨平台的 JavaScript 运行时环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

#npm:Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。

#npm、Node.js、npm三者关系的总结:nvm管理Node.js的版本,npm管理Node.js的包。

注意:如果你之前已经单独在自己的机器上安装并使用过Node.js,必须先卸载这个已经安装好的版本,否则不仅无法纳入nvm的版本管理中,而且很可能会出现冲突问题。
在这里插入图片描述
在这里插入图片描述

在cmd中输入node -vnpm -v 分别检查Node.js和npm的版本,出现如下图的提示才算卸载完成:
在这里插入图片描述

二、下载并安装nvm

2.1 下载nvm-windows

点击访问链接下载nvm-windows

下载nvm-setup.exe或者nvm-set.zip(解压出来也是nvm-setup.exe)
在这里插入图片描述
最后会得到这样一个安装包
在这里插入图片描述

2.2 安装nvm-windows

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检验nvm安装是否成功:nvm -v
在这里插入图片描述
nvm安装目录内容:
在这里插入图片描述
nvm安装过程中自动默认配置的用户变量:
在这里插入图片描述
在这里插入图片描述
nvm安装过程中自动默认配置的系统变量Path:
在这里插入图片描述

2.3 配置nvm taobao镜像

使用编辑器软件打开nvm安装目录下的settings.txt文件夹,在其中添加如下taobao镜像:
注意:这里设置的镜像源是安装Node.js和npm本身的源,不是安装Node.js包的源。

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

##npm taobao mirrors
npm_mirror:  https://npm.taobao.org/mirrors/npm/

在这里插入图片描述
settings.txt的默认内容
在这里插入图片描述
添加taobao镜像后的settings.txt:
在这里插入图片描述

2.4 新建node_global和node_cache

Node.js安装目录中新建node_global&node_cache文件夹

#node_global是npm的全局模块的路径
#node_cache是npm使用时的cache即缓存的配置路径。

在这里插入图片描述

三、配置nvm、Node.js、npm协同工作

3.1 使用nvm

nvm个人常用命令一览:

#nvm   -v                       查看nvm版本
#nvm                            查看nvm相关信息
#nvm   list  available          查看可用的版本
#nvm   install Node.js的版本号   安装Node.js18.16.0 (如nvm install 18.16.0)
#nvm   use    Node.js的版本号    使用Node.js18.16.0 (如nvm use 18.16.0)  如果安装了多个Node.js包,就相当于切换版本。 【只会安装不会安装并自动切换到这个版本】
#nvm   list或nvm ls             查看已下载的Node.js的版本

#notice:这里使用的较少
#nvm arch                       查看当前Node.js运行64位或32位操作系统上
#nvm on/off                     开启/关闭Node.js的版本管理
#nvm use 版本号 arch             使用指定版本指定位数的Node.js
#nvm uninstall                  卸载指定版本的Node.js

nvm -v 查看nvm版本:
在这里插入图片描述
nvm 查看nvm相关信息:
在这里插入图片描述
nvm list available 和 nvm install Node.js的版本号 :
在这里插入图片描述
Node.js官网显示长期维护版为18.16.0最新尝鲜版20.3.0nvm list available获取的一致:

在这里插入图片描述
###安装并切换到Node.js 20.3.0全过程###:

nvm listnvm use Node.js的版本号
在这里插入图片描述

#查看使用的Node.js的版本
node -v

#查看Node.js对应的npm的版本
npm -v

#查看npm config配置的信息
npm config list

3.2 npm config set registry 设置镜像站

可参考我这篇
IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported

在CMD中使用nmp config 中的npm config set命令配置镜像-regisry
注意:这里设置的镜像源是安装Node.js包的源。

#npm config set registry 设置镜像站
npm config set registry=http://registry.npm.taobao.org

在这里插入图片描述
###注意:由上图操作得出一个结论:registry设置一次,对你已经安装的所有的Node.js版本的包都有效果###

3.3 npm config set 配置node_global和node_cache

在CMD中使用nmp config 中的npm config set命令配置node_globalnode_cache文件夹

npm config set prefix "D:\front\nvm\node_global"
npm config set cache  "D:\front\nvm\node_cache"
#node_global是npm的全局模块的路径
#node_cache是npm使用时的cache即缓存的配置路径。

在这里插入图片描述

3.4 npm config get 获取npm 相关配置信息

#npm config list            查看npm config配置的信息
#npm config get cache       获取cache配置的信息 (npm使用时的cache即缓存的配置路径)
#npm config get prefix      获取npm的全局模块的路径
#npm config get registry    获取镜像信息

#经过测试下列简化命令也适用
#npm  get cache       获取cache配置的信息 (npm使用时的cache即缓存的配置路径)
#npm  get prefix      获取npm的全局模块的路径
#npm  get registry    获取镜像信息

在这里插入图片描述
#经过测试下列简化命令也适用【可忽略此步骤】
在这里插入图片描述

四、使用nvm、Node.js、npm协同工作流程

目前(2023-6-22 17:28:46 )Node.js长期维护版为18.16.1(推荐多数用户使用)最新尝鲜版20.3.1(含最新功能) :
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.1 流程

#1、通过nvm查看可用的Node.js的版本
nvm   list  available 

#2、查看目前已经安装Node.js的版本(查看已下载的Node.js的版本)
#nvm list  或 nvm ls           

#3、 安装需要的Node.js的版本 (如nvm install 18.16.1)【只会安装不会安装并自动切换到这个版本】
 #nvm   install Node.js的版本号  

#4、使用此版本
#nvm   use    Node.js的版本号    
使用Node.js 18.16.1 (如nvm use 18.16.1) 如果安装了多个Node.js包,就相当于切换版本。


#5、切换版本【同上,可忽略】
nvm   use    Node.js的版本号    

使用Node.js 20.3.1 全过程截图【从18.16.1切换到20.3.1】:
在这里插入图片描述
使用Node.js 18.16.1 全过程截图【从20.3.1切换到18.16.1】:
在这里插入图片描述

4.2 查看Node.js版本的相关配置信息

Node.js18.16.1的配置信息:
在这里插入图片描述
Node.js20.3.1的配置信息:
在这里插入图片描述
所以:cache、prefix、registry这些设置只需要配置一次就可以了,类似全局变量。
cache、prefix、registry按前面所述配置好了,这些信息保存在.npmrc 文件中:
在这里插入图片描述
在这里插入图片描述

4.3 使用过nvm进行Node.js版本切换的nvm文件目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、参考资料

nvm-sh
coreybutler/nvm-windows
nvm-windows 下载安装及踩坑
Index of /npm/
Windows nvm安装与使用
nvm for windows 下载、安装及使用
IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported

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

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

相关文章

chatgpt赋能python:Python求加速度:从计算机视觉到自动驾驶

Python求加速度:从计算机视觉到自动驾驶 在计算机视觉、自动驾驶和机器人等领域,求加速度是常见的任务。Python是一种强大的编程语言,可以用于快速、简便地求解加速度。本篇文章将介绍如何在Python中求解加速度,并探讨加速度在实…

【无标题】很有趣的一个个CSS小球下落动画

代码如下 <!-- 两个div --> <div class"ball"></div> <div class"ground"></div>.ball {width: 30px;height: 30px;background-color: black;border-radius: 50%;position: relative;left: 90px;animation: failing 0.5s ea…

leetcode64. 最小路径和(动态规划-java)

最小路径和 leetcode64. 最小路径和题目描述 暴力递归 缓存代码演示 动态规划代码演示空间压缩代码演示 动态规划专题 leetcode64. 最小路径和 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/minimum-path-sum 题目描…

C高级6.23

一.整理用户相关的指令、整理磁盘相关的指令 用户相关的指令&#xff1a; 1.id -u 查看用户ID 2.id -g 查看组ID 3.whoami 查看用户名 4.sudo adduser 用户名 创建用户 5.给新用户添加sudo权限 给新用户添加sudo权限的步骤&a…

Spring 与 Servlet-1

整合 Spring 和 Servlet DAO 使用 JDBC 通过模板类进行整合&#xff0c;模板类由 Spring 框架提供&#xff0c;只需进行配置即可 1、依赖&#xff1a;spring-jdbc 和连接池 druid、数据库驱动 mysql-connect-java 2、引入了 IoC、DI 后对象的创建完全交给 Spring 负责&#…

chatgpt赋能python:求1-3+5-7:用Python解决这个算术问题

求1-35-7: 用Python解决这个算术问题 介绍 在Python编程领域中&#xff0c;算术问题是我们经常会遇到的。今天&#xff0c;我们将介绍如何用Python求1-35-7这个算式的结果。这个问题看起来很简单&#xff0c;但如果你是初学者&#xff0c;可能会有点难以理解。不必担心&#…

嵌入式中编写可移植 C/C++ 程序的要点方法

以前做过两年 C 程序移植工作&#xff0c;从 Win32 平台移植到 Linux 平台。大约有上百万行 C/C代码&#xff0c;历时一年多。 在开发 Win32 版本时&#xff0c;已经强调了程序的可植性&#xff0c;无奈 Win32 团队里对 Linux 精通的人比较少&#xff0c;很多问题没有想到&…

InstructGPT论文解读

介绍 上图可以看出InstructGPT(PPO-ptx)及变体&#xff08;variant trained without pretraining mix&#xff09;(PPO)显著优于GPT&#xff0c;1.3B的InstructGPT优于175B的GPT&#xff0c;SFT作为RLHF第一阶段的模型效果比GPT好。当然结果是由人来评价的。 RLHF包含三个步骤…

多EIP下的UDP通信异常分析

背景 SRE和程序在测试DDos多EIP防御方案的过程中&#xff0c;发现多EIP模式下, 监听的UDP端口连接会出现客户端访问异常。 表现为客户端发送一次数据后服务端这边主动断开了&#xff0c;或是客户端和服务端同时断开。 该问题会导致业务在多EIP方案下无法达到预期效果&#xff0…

【Visual Studio】Qt 获取系统时间,并实时更新时间,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 这个需求来源于这个工程&#xff1a;【Visual Studio】Qt 的实时绘图曲线功能&#xff0c;使用 C 语言&#xff0c;配合 Qt 开发串口通信界面。 文章目录 Qt…

chatgpt赋能python:Python求和1-100的方法

Python求和1-100的方法 Python语言简介 Python是一个广泛使用的高级编程语言&#xff0c;其设计哲学强调代码可读性和语法简洁性。Python语言作为一门多范式的编程语言&#xff0c;支持对象、函数式和结构化编程等多种形式。Python应用领域广泛&#xff0c;如机器学习、桌面应…

chatgpt赋能python:Python求1!:介绍

Python求1!&#xff1a;介绍 在Python编程中&#xff0c;阶乘是一个常见的数学运算。阶乘指定的数的所有小于或等于其本身的正整数之积&#xff0c;例如&#xff0c;1!等于1&#xff0c;2&#xff01;等于2乘以1&#xff0c;3!等于3乘以2乘以1&#xff0c;以此类推。 在这篇文…

【工程项目管理】工程项目管理实践报告

前言&#xff1a; 1.大学课程的大作业&#xff0c;觉得存起来也没什么用就干脆发出来了。。。 2.很可能有不严谨之处&#xff0c;各位看官如若发现欢迎指出~ 创作者文章管理系统 1 实践环节作业1&#xff1a;选题及任务分解WBS &#xff08;1&#xff09;选题 a.项目名称&a…

【1 beego学习 -MAC框架与ORM数据库】

0 beego的启动流程 1 入口 package mainimport ( //全局使用的路由和models_ "studyDemo/models"_ "studyDemo/routers"beego "github.com/beego/beego/v2/server/web" )func main() {beego.Run() }2 根据请求路由加载对应的控制器 package r…

【计算机组成原理】微程序控制器

目录 一、微程序控制器概述 二、微程序控制器设计方法 三、微指令执行过程 四、控制字段的编码方式 五、下址字段的设计方法 六、微程序入口地址的产生方法 一、微程序控制器概述 微程序&#xff1a;微指令构成的有序集合&#xff0c;一条指令对应一段微程序 微指令&…

【小沐学Android】Material Design设计规范之颜色篇

文章目录 1、简介1.1 Android1.2 Material Design 2、Material Design 12.1 材料设计2.2 颜色 3、Material Design 23.1 材料系统3.2 颜色 4、Material Design 34.1 颜色样式4.2 配色方案4.3 Material Theme Builder 结语 1、简介 1.1 Android 谷歌在2007年发布了第一个测试版…

chatgpt赋能python:Python清除代码:让你的项目更加优美

Python清除代码&#xff1a;让你的项目更加优美 随着时间推移和项目规模扩大&#xff0c;代码中可能会出现许多冗余、无用或重复的代码。这不仅会让代码难以维护&#xff0c;还会降低代码的性能和可读性。而Python作为一种高级编程语言&#xff0c;提供了许多工具和技术来清除…

牛客练习赛108 E.琉焰(非树边性质/线段树分治+可撤销并查集 or LCT)

题目 思路来源 官方题解 题解 针对每个连通块&#xff0c;单独考虑&#xff1a; 一方面&#xff0c; 任取连通块的某棵生成树&#xff0c; 对于任意非树边(u,v)&#xff0c;把树边u到v上的所有边都选中&#xff0c;即被覆盖1次&#xff0c; 任取某个非树边集合S&#xff…

LangChain for LLM Application Development 基于LangChain开发大语言应用模型(下)

以下内容均整理来自deeplearning.ai的同名课程 Location 课程访问地址 DLAI - Learning Platform Beta (deeplearning.ai) LangChain for LLM Application Development 基于LangChain开发大语言应用模型&#xff08;上&#xff09; 一、LangChain: Q&A over Documents基于文…

bert4rec简介

1、bert4rec提出动机 用户行为动态变化&#xff0c;序列行为建模取得了不错的效果 单向结构限制了行为序列中隐藏信息的挖掘 序列神经网络顺序依赖&#xff0c;无法并行计算 为此&#xff0c;提出了 基于双向self-attention和Cloze task的用户行为序列建模方法。据我们所知…