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

gnvm切换node版本号

1. gnvm下载官网

GNVM - Node.js version manager on Windows by Go

2. 安装

        2.1 不存在 Node.js 环境

下载并解压缩 gnvm.exe 保存到任意文件夹,并将此文件夹加入到环境变量 Path。

        2.2 存在 Node.js 环境

下载并解压缩 gnvm.exe 保存到 Node.js 所在的文件夹。

        2.3 查看 Node.js 文件地址

C:\Users\my_name>where node
C:\Program Files\nodejs\node.exe

3. 使用 gnvm

        3.1 查看所有命令及说明

C:\Users\my_name>gnvm -h
Usage of gnvm:

Usage:
  gnvm [flags]
  gnvm [command]

Available Commands:
  config                    Setter and getter .gnvmrc file
  use                       Use any the local already exists of Node.js version
  ls                        Show all [local] [remote] Node.js version
  install                   Install any Node.js version
  uninstall                 Uninstall local Node.js version and npm
  update                    Update Node.js latest version
  npm                       NPM version management
  session                   Set any local Node.js version to session Node.js version
  search                    Search and Print Node.js version detail usage wildcard mode or regexp mode
  node-version              Show [global] [latest] Node.js version
  reg                       Add config property [noderoot] to Environment variable [NODE_HOME]
  version                   Print GNVM version number
  help [command]            Help about any command

 Available Flags:
      --help=false: help for gnvm

Use "gnvm help [command]" for more information about that command.

        3.2 安装指定 node 版本

C:\Users\my_name>gnvm install 22.8.0
Start download Node.js versions [22.8.0].
22.8.0: 100% [==================================================>] 3s
--------
End download.

        3.3 查看已下载的nodejs版本

v20.5.0 -- global 为当前使用的node版本

C:\Users\my_name>gnvm ls
Notice: gnvm.exe root is C:\Program Files\nodejs\\
v16.13.1
v16.13.1 -- x86
v20.5.0 -- global
v20.5.0 -- x86
v22.8.0

        3.4 切换 node.js 版本(切换时不能运行项目)

C:\Users\my_name>gnvm use 20.5.0
Set success, global Node.js version is 20.5.0.

# 查看node版本
C:\Users\my_name>node -v
v20.5.0

        3.5 搜索当前可安装的node和npm版本(两者成对应关系)

C:\Users\my_name>gnvm search *.*.*
Search Node.js version rules [*.*.*] from http://npm.taobao.org/mirrors/node/index.json, please wait.
Error: 'gnvm search' get url http://npm.taobao.org/mirrors/node/index.json error, Error: Error: util/print.go an error has occurred. Error: interface conversion: interface is curl.CurlError, not string

发现报错,查不出来

                3.5.1 尝试更换为淘宝镜像地址
# 尝试更换为淘宝镜像地址
C:\Users\my_name>gnvm config registry TAOBAO
Set success, registry new value is http://npm.taobao.org/mirrors/node/

C:\Users\my_name>npm config get registry
https://registry.npmmirror.com/

# 还是查不出来
C:\Users\my_name>gnvm search *.*.*
Search Node.js version rules [*.*.*] from http://npm.taobao.org/mirrors/node/index.json, please wait.
Error: 'gnvm search' get url http://npm.taobao.org/mirrors/node/index.json error, Error: Error: util/print.go an error has occurred. Error: interface conversion: interface is curl.CurlError, not string
                3.5.2 如果淘宝镜像出现问题,那么更换默认地址
C:\Users\14249>gnvm config registry DEFAULT
Set success, registry new value is http://nodejs.org/dist/

C:\Users\14249>npm config get registry
https://registry.npmmirror.com/

C:\Users\14249>gnvm search *.*.*
Search Node.js version rules [*.*.*] from http://nodejs.org/dist/index.json, please wait.
+--------------------------------------------------+
| No.   date         node ver    exec      npm ver |
+--------------------------------------------------+
  1     2025-03-13   23.10.0     x86 x64   10.9.2
  2     2025-02-26   23.9.0      x86 x64   10.9.2
  3     2025-02-13   23.8.0      x86 x64   10.9.2
  4     2025-01-30   23.7.0      x86 x64   10.9.2
  5     2025-01-21   23.6.1      x86 x64   10.9.2
  6     2025-01-07   23.6.0      x86 x64   10.9.2
  7     2024-12-19   23.5.0      x86 x64   10.9.2
  8     2024-12-10   23.4.0      x86 x64   10.9.2
  9     2024-11-20   23.3.0      x86 x64   10.9.0
  10    2024-11-11   23.2.0      x86 x64   10.9.0
  11    2024-10-24   23.1.0      x86 x64   10.9.0

        3.6 查看指定版本的node与npm对应版本

C:\Users\my_name>gnvm search 20.*.*
Search Node.js version rules [20.*.*] from http://nodejs.org/dist/index.json, please wait.
+--------------------------------------------------+
| No.   date         node ver    exec      npm ver |
+--------------------------------------------------+
  1     2025-03-13   20.19.0     x86 x64   10.8.2
  2     2025-02-10   20.18.3     x86 x64   10.8.2
  3     2025-01-21   20.18.2     x86 x64   10.8.2
  4     2024-11-20   20.18.1     x86 x64   10.8.2
  5     2024-10-03   20.18.0     x86 x64   10.8.2
  6     2024-08-21   20.17.0     x86 x64   10.8.2
  7     2024-07-24   20.16.0     x86 x64   10.8.1
  8     2024-07-08   20.15.1     x86 x64   10.7.0
  9     2024-06-20   20.15.0     x86 x64   10.7.0
  10    2024-05-28   20.14.0     x86 x64   10.7.0
  11    2024-05-09   20.13.1     x86 x64   10.5.2
  12    2024-05-07   20.13.0     x86 x64   10.5.2
  13    2024-04-10   20.12.2     x86 x64   10.5.0
  14    2024-04-03   20.12.1     x86 x64   10.5.0
  15    2024-03-26   20.12.0     x86 x64   10.5.0
  16    2024-02-13   20.11.1     x86 x64   10.2.4
  17    2024-01-09   20.11.0     x86 x64   10.2.4
  18    2023-11-22   20.10.0     x86 x64   10.2.3
  19    2023-10-24   20.9.0      x86 x64   10.1.0
  20    2023-10-13   20.8.1      x86 x64   10.1.0
  21    2023-09-28   20.8.0      x86 x64   10.1.0
  22    2023-09-18   20.7.0      x86 x64   10.1.0
  23    2023-09-07   20.6.1      x86 x64   9.8.1
  24    2023-08-23   20.6.0      x86 x64   9.8.1
  25    2023-08-09   20.5.1      x86 x64   9.8.0
  26    2023-07-19   20.5.0      x86 x64   9.8.0
  27    2023-07-04   20.4.0      x86 x64   9.7.2
  28    2023-06-20   20.3.1      x86 x64   9.6.7
  29    2023-06-08   20.3.0      x86 x64   9.6.7
  30    2023-05-16   20.2.0      x86 x64   9.6.6
  31    2023-05-03   20.1.0      x86 x64   9.6.4
  32    2023-04-17   20.0.0      x86 x64   9.6.4
+--------------------------------------------------+

        3.7 查看具体版本的node与npm对应版本

C:\Users\my_name>gnvm search 20.6.1
Search Node.js version rules [20.6.1] from http://nodejs.org/dist/index.json, please wait.
+--------------------------------------------------+
| No.   date         node ver    exec      npm ver |
+--------------------------------------------------+
  1     2023-09-07   20.6.1      x86 x64   9.8.1
+--------------------------------------------------+

4. 切换 node 版本后项目无法运行

        4.1 原因

网上查询到原因为node.js 的版本问题

因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。

1. 推荐:修改package.json,在相关构建命令之前加入SET NODE_OPTIONS=--openssl-legacy-provider

"scripts": {
   "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
   "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
},

这种可以一劳永逸,以后直接通过npm执行scripts里面的命令即可。不管是项目迭代,还是团队开发,这种都比较有效。

2. 当次运行的命令窗口有效:在你当前文件的cmd命令窗口输入:SET NODE_OPTIONS=--openssl-legacy-provider, 回车后输入 npm 运行命令

这种做法,就是每次运行都要输入SET NODE_OPTIONS=--openssl-legacy-provider,来告诉nodejs,别使用最新的SSL3.0,还是使用以前旧版本的。

 3.就是nodejs版本回退到16版本,这样就可以直接运行了。

相关文章:

  • DATEDIFF 函数
  • 容器主机CPU使用率突增问题一则
  • 设计模式之创建型5种
  • 05-SpringBoot3入门-整合SpringMVC(配置静态资源、拦截器)
  • git命令使用小记(打补丁)
  • Ubuntu 系统上完全卸载 CasaOS
  • qwen2.5vl技术报告解读
  • PyQt6实例_批量下载pdf工具_使用pyinstaller与installForge打包成exe文件
  • 蓝桥杯 - 中等 - 绝美宋词
  • 在 Solana 中实现映射表与嵌套映射表
  • PolarDB数据库表恢复实战指南:通过控制台恢复表的完整操作流程
  • 【Kafka】消费者幂等性保障全解析
  • 大模型LLMs框架Langchain之链详解
  • 一、Python编程语言介绍
  • 微服务集成测试 -华为OD机试真题(A卷、Python)
  • 数据结构C语言练习(单双链表)
  • 深度学习 机器学习和强化学习算法的关系
  • flink 分组窗口聚合 与 窗口表值函数聚合 的区别
  • 【算法手记6】NC1 大数加法 NC40 链表相加(二) NC10 大数乘法
  • 营销库存系统设计方案
  • 首映|《星际宝贝史迪奇》真人电影,不变的“欧哈纳”
  • 全国省市县国土空间总体规划已基本批复完成,进入全面实施阶段
  • 临港新片区将新设5亿元启航基金:专门投向在临港发展的种子期、初创型企业
  • 日本一季度实际GDP环比下降0.2%
  • Offer触手可及,2025上海社会组织联合招聘专场活动正寻找发光的你
  • 菲律宾中期选举初步结果出炉,杜特尔特家族多人赢得地方选举