NVM 的安装和使用

今天后端同学那边遇到了一个问题,那边跑一个react项目,npm install 直接报错,但是在我这边并没有报异常,后来发现他的 NPM 版本为 3.10.10, 我猜测是 NPM 版本太低的缘故,就顺便看了下 Node 的版本,版本是 v6.10.0, 所以直接给他更新了 NodeJS,正当我以为问题解决了的时候,后端同学又和我说,现在的项目可以跑起来了,但是之前的项目他跑不起来了。

emmmm…..我又过去看了下报错信息,这会问题是 Node 给我更新掉了,版本太高项目跑不起来了….
所以,有了这篇关于 Node Version Manager (NVM) for Windows 的文章

安装

NVM 安装很简单,直接去Github上边找 nvm-windowsreleases,直接下载最新那版的zip就可以了。有免安装和安装版可以选择(我选择了安装版)。

安装过程中选择一下 NVM 安装目录以及之后 NodeJS 的管理目录。

选择目录

之前有安装 NodeJS 记得指定到之前安装的目录下,就可以使用 NVM 管理之前安装的Node版本了。
如果是NodeJS使用的是绿色版的话,之后可能需要使用NVM 重新下载安装。

然后就等待安装完成就可以了。
完成之后在终端输入 nvm 检查版本确认是否安装成功(当前版本1.1.7)

检查版本


常用命令

  • 查看 NVM 下已经安装的 Node 版本号
    显示当前已安装 Node 版本列表,缩写为 ls, 当前使用的版本会在前标识 *
    在末尾加上 available 显示可供下载的所有版本列表

    1
    2
    3
    PS C:\Users\yog\Desktop> nvm list // 简写为 nvm ls
    14.5.0
    * 12.12.0 (Currently using 64-bit executable)
  • 切换到指定的 Node 版本

    nvm use [version] [arch]

    一般先使用 nvm ls 输出已经安装的版本,然后再根据可选项切换版本。

    1
    2
    PS C:\Users\yog\Desktop> nvm use 12.12.0 // 具体版本号
    Now using node v12.12.0 (64-bit)

    设置 [arch] 可指定 32/64位结构。
    如果不填版本号只填写 32( nvm use 32 )将继续使用当前Node版本,只切换到32位模式。

  • 安装指定版本的Node

    nvm install <version> [arch]

    <version> 可以是 具体版本号 也可以是 latest 来安装最新的 稳定 版本,
    [arch] 指定安装 32位 还是 64位 版本(默认为系统结构), 设置为 all 以同时安装32和64位版本。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    PS C:\Users\yog\Desktop> nvm install 6.10.0
    Downloading node.js version 6.10.0 (64-bit)...
    Complete
    Downloading npm version 3.10.10... Complete
    Installing npm v3.10.10...

    Installation complete. If you want to use this version, type

    nvm use 6.10.0

    也可以在末尾添加 --insecure 可以绕过远程下载服务器的SSL验证。

  • 卸载指定Node版本

    nvm uninstall <version>

    1
    2
    PS C:\Users\yog\Desktop> nvm uninstall 6.10.0
    Uninstalling node v6.10.0... done
  • 查看所有可安装的Node版本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    PS C:\Users\yog\Desktop> nvm ls available

    | CURRENT | LTS | OLD STABLE | OLD UNSTABLE |
    |--------------|--------------|--------------|--------------|
    | 14.7.0 | 12.18.3 | 0.12.18 | 0.11.16 |
    | 14.6.0 | 12.18.2 | 0.12.17 | 0.11.15 |
    | 14.5.0 | 12.18.1 | 0.12.16 | 0.11.14 |
    | 14.4.0 | 12.18.0 | 0.12.15 | 0.11.13 |
    | 14.3.0 | 12.17.0 | 0.12.14 | 0.11.12 |
    | 14.2.0 | 12.16.3 | 0.12.13 | 0.11.11 |
    | 14.1.0 | 12.16.2 | 0.12.12 | 0.11.10 |
    | 14.0.0 | 12.16.1 | 0.12.11 | 0.11.9 |
    | 13.14.0 | 12.16.0 | 0.12.10 | 0.11.8 |
    | 13.13.0 | 12.15.0 | 0.12.9 | 0.11.7 |
    | 13.12.0 | 12.14.1 | 0.12.8 | 0.11.6 |
    | 13.11.0 | 12.14.0 | 0.12.7 | 0.11.5 |
    | 13.10.1 | 12.13.1 | 0.12.6 | 0.11.4 |
    | 13.10.0 | 12.13.0 | 0.12.5 | 0.11.3 |
    | 13.9.0 | 10.22.0 | 0.12.4 | 0.11.2 |
    | 13.8.0 | 10.21.0 | 0.12.3 | 0.11.1 |
    | 13.7.0 | 10.20.1 | 0.12.2 | 0.11.0 |
    | 13.6.0 | 10.20.0 | 0.12.1 | 0.9.12 |
    | 13.5.0 | 10.19.0 | 0.12.0 | 0.9.11 |
    | 13.4.0 | 10.18.1 | 0.10.48 | 0.9.10 |

    This is a partial list. For a complete list, visit https://nodejs.org/download/release

其它命令

  1. nvm arch 查看 Node 当前运行32位还是64位模式。

  2. nvm on 开启 NVM 版本管理.

  3. nvm off 关闭 NVM 版本管理.

  4. nvm proxy [url] 设置用于下载的代理。将 [url] 留空查看当前设置的代理,将 [url] 设置为 “none” 来删除代理。

  5. nvm node_mirror [url] 设置节点镜像。默认为 https://nodejs.org/dist/,将 [url] 留空 以使用 默认url

  6. nvm npm_mirror [url] 设置 NPM 镜像。默认为https://github.com/npm/cli/archive/,将 [url] 留空 保留为 默认url。

  7. nvm root [path] 设置 NVM 不同版本的 Node.js 的存储目录,如果 [path] 留空,将显示当前设置的存储目录。

  8. nvm version 显示当前 NVM 运行版本。 缩写 v


遇到的问题

  • 安装完成之后使用 nvm ls 没有看到之前已经安装的NodeJS版本

    我在使用的过程中没有遇到这个问题,但是同事在安装之后遇到了,这个问题。有可能是因为安装时指定的Node目录错误了,可以卸载之前安装的 NodeJS,然后使用 nvm install <version> 重新安装对应版本的 NodeJS