使用nvm管理node.js版本

1.情景展示

如上图所示,项目某个模块支持的node.js最高版本是17,我用的是20,所以只能降级。

2.具体分析

我现在把node.js降到16,那后续如果再需要20呢?能不能实现版本的随时切换?

3.安装nvm

我们可以使用nvm来管理node.js的版本。

下载nvm

windows下载地址:https://github.com/coreybutler/nvm-windows/releases/tag/1.2.2

手动安装或者自动安装都可以。

我选的是:nvm-noinstall.zip

解压并重命名

下载完成后,对其进行解压。

解压之后,我们就能得到nvm免安装版,可以对文件夹进行重命名,我的习惯是:程序名+"-"+版本号。

修改install.cmd

选中install.cmd,右键,编辑:

NVM_SYMLINK的值,默认设置的是:C:\Program Files\nodejs。

最好改掉,理由是:

这个目录其实是一个软连接,由它来决定nvm使用的nodejs版本。

当我们运行nvm use nodejs版本后,nvm会自动生成软连接目录,将该目录连接到nvm下属对应版本的node.js。

由于C盘是系统盘,当我们重装系统时,需要操作nvm,为了避免这种情况,我们可以把nvm当前启用的nodejs文件存放到和nvm一个磁盘下。

set NVM_SYMLINK=D:\nvm-nodejs-link

如果NVM_SYMLINK对应的目录已经存在的话,在切换node.js版本时,报以下错误:

意思是该目录已存在,我们需要将该目录删掉或者你再换个不存在的目录名称。

注意:只有当我们使用nvm use命令后,对应的软连接目录才会生成

运行install.cmd

复制当前nvm.exe所在的路径;

然后,选中install.cmd,右键,以管理员身份运行。

需要将复制的路径拷贝进行,并按Enter键进行执行。

执行完毕后,NVM_HOME目录下会多出一个settings.txt文件,并会被自动打开。

root:指的是nvm所在根目录;

path:指的是控制nvm启用的nodejs版本的软连接目录。

执行完毕后,环境变量里面将会增加两个变量(install.cmd命令就是为了增加两个环境变量,并添加到了path当中)。

NVM_HOME:nvm所在的路径。

NVM_SYMLINK:node.js所启用的路径。

这样一来,我们就可以在黑窗口内使用npm命令啦。

下载指定版本的node.js

nvm install node.js版本号

node.js下载成功后,会自动被放置在nvm所在目录下。

如果下载失败,我们可以设置node和npm的国内镜像。

设置国内镜像

有两种方式。

一种是通过命令设置。

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

这两个命令实现的效果就是:

往NVM_HOME目录下的 settings.txt文件中追加了以下内容。

另一种是直接修改配置文件。

打开settings.txt,将上述代码复制到该文件当中。

说明:

虽然可以通过修改改文件配置node和npm的镜像,但是,如果我们再次运行install.cmd后,该文件内容将被重置。

还有就是:每运行一次install.cmd,环境变量path中就会追加%NVM_HOME%和%NVM_SYMLINK%。

查看nvm管理的node.js的版本(已安装的版本)

方式一:

nvm list

说明:

如果已经下载成功了,或者我们不确定已经下载了node对应的指定版本,我们可以先使用该命令查看nvm一共管理了nodejs详细情况。

如果出现的是上图,只罗列出了nodejs版本,没有正在使用的node版本。

像上图,不仅有nvm管理的nodejs版本,还说明了当前使用的是哪个版本。

方式二:

也可以直接查看NVM_HOME的目录下有几个nodejs版本。

使用/切换到指定版本的node.js

nvm use node.js的版本

如果切换失败(运行node -v,显示的仍是原来的版本号),虽然提示修改成功了,但是,一运行node -v,发现node.js的版本还是老样子,那就是path里面有问题了。

删除path里面关于node的路径配置(删除已安装的node.js的环境配置)

 版本切换成功后,nvm会自动将映射到其下属对应版本的node.js的内容。

查看可安装版本

nvm list available

node.js历史发布版本

4.nodejs配置

配置全局参数

在NVM_HOME目录下创建子目录:node_global\etc,并在该目录下创建一个npmrc文件。

添加以下内容:

prefix="D:\\NVM_HOME\\node_global"
cache="D:\\NVM_HOME\\node_cache"
registry="https://registry.npmmirror.com"

prefix:指定全局模块存放路径。

cache:设置缓存路径。

registry:将镜像地址设置为淘宝。

执行命令,使得上述参数配置生效。

npm config set globalconfig "NODE_HOME\\node_global\\etc\\npmrc"

 

 查看参数配置是否生效。

npm config ls

 

输出的内容是:全局配置来自于D:\nvm-1.2.2\node_global\etc\npmrc。

将全局命令访问路径添加到环境变量path中

上面的prefix只是设置nodejs将全局命令下载到本地的存放目录。 

要想使用全局模块对应的命令,我们需要经全局模块的存放目录添加到path当中。

也就是:全局模块存放目录所在的绝对路径。

全局安装模块

npm install 模块名称 -g
全局安装cnpm
npm install cnpm -g

 

安装在了node_global\node_modules目录下

运行cnpm,执行的是node_global\cnpm.cmd。

全局安装yarn
npm install yarn -g

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

  • 个人主页
  • Node.js安装教程

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

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

相关文章

3.19 学习记录

完成了仓库管理系统的制作,基本无bug,所展示功能都可以实现,基于 springboot 和 vue3 具体实现如下: 登录管理员页面 有仓库管理,物资管理,库存管理和统计功能仓库工作人员页面

网站测速——提升用户体验的关键

在互联网飞速发展的今天,网站已成为企业展示形象、提供服务以及用户获取信息的重要平台。而网站的速度,如同高速公路的路况,直接影响着用户的访问体验和满意度。因此,网站测速成为了网站运营和维护中不可或缺的关键环节。 网站速度对企业来说真的那么重要吗?​ 网站测速的…

表单和载荷的区别,以及python和js在处理json时的空格问题。

1、在 传载荷的时候,用json= 这样传底层会调用json.dumps来转换,如:response = requests.post(url,headers=headers,params=params,data=json.dumps(data.separators=(,":")) 2、在 传表单的时候,用data= 如:response = requests.post(url,headers=headers,…

荣誉| 触想TPC07-WIPC工控机荣获2025控制产品“新质”奖!

3月13日,第23届中国自动化与数字化“新质奖”评选颁奖典礼在无锡举办,触想自主研发的TPC07-WIPC工控机以卓越性能、灵活扩展和可靠性备受关注,获得2025控制产品“新质”奖。△ 触想代表朱涛(左四)上台领奖TPC07-WIPC系列工控机是触想面向边缘计算、机器视觉、AI智能等场景推…

汉诺塔游戏 | 数学益智游戏②

依托国产的 AI 豆包完成的网页端的汉诺塔益智游戏。前情概要 AI 辅助设计的一款数学益智游戏,汉诺塔游戏。 汉诺塔游戏body0 {font-family: Arial, sans-serif; text-align: left; background-color: #f4f4f9; display: flex; flex-direction: column; align-items: center; }…

20242801 2024-2025-2 《网络攻防实践》第3次作业

20242801 2024-2025-2 《网络攻防实践》第3次作业 一、实验内容使用tcpdump等网络流量分析工具对网络登陆过程进行嗅探,统计登陆通过中访问的ip地址信息。 使用wireshark或科来等网络分析工具,对以TELNET方式登陆BBS过程进行嗅探,查看BBS服务器的ip地址和访问端口,以及使用…

python 实验一(20241116魏铼)

课程:《Python程序设计》 班级: 2411 姓名: 魏铼 学号:20241116 实验教师:王志强 实验日期:2025年3月19日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试分析,要有过程) 3.编写程序,练习变量和…

工具-安装uTools搜索工具

安装uTools工具 通过网盘分享的文件:uTools 链接: https://pan.baidu.com/s/10QoYus5aWO3b5bvTZ-c9uw?pwd=sky1 提取码: sky1 使用效果:alt + 空格键

“四预”驱动数字孪生水利:让智慧治水守护山河安澜

近年来,从黄河秋汛到海河特大洪水,从珠江流域性洪灾到长江罕见骤旱,极端天气频发让水安全问题备受关注。如何实现“治水于未发”?数字孪生水利以“预报、预警、预演、预案”(四预)为核心,正在掀起一场水利治理的智慧革命。 一、数字孪生水利:从物理世界到虚拟镜像的跃迁…

Pydantic模型继承解析:从字段继承到多态模型

title: Pydantic模型继承解析:从字段继承到多态模型 date: 2025/3/19 updated: 2025/3/19 author: cmdragon excerpt: 涵盖字段继承、属性覆盖、多态模型等关键机制。将掌握类型安全的继承体系构建方法,实现企业级数据校验方案,避免传统面向对象继承的常见陷阱。 categori…

20242428 实验一《Python程序设计》实验报告

学号20242428《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2424 姓名: 虎岳 学号:20242428 实验教师:王志强 实验日期:2025年3月19日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试…

记录一次PG数据库连接数超最大值问题

报错内容: nested exception is org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections排查手段 : SELECT COUNT(*) FROM pg_stat_activity; 查询活跃的连接 SHOW max_connections; 查询数…