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 版本后项目无法运行

gnvm切换node版本号_第1张图片

        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 运行命令

gnvm切换node版本号_第2张图片

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

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

你可能感兴趣的:(node.js,npm)