一直以来都使用 nvm-windows 来管理 Node 版本。从没出过问题。今天团队小伙伴来反馈我们的一个内部命令行工具在 Node 6.10.0 上无法安装。于是决定安装一个 6.10.0 调查一下。

于是执行:

nvm install v6.10.0

结果输出:

$ nvm install v6.10.0
Node.js vv6.10.0 is not yet released or available.

似乎是哪里不对了。

于是下意识的 nvm ls available 一下看看:

$ nvm ls available

Showing the 15 latest available releases.

      STABLE   |    UNSTABLE
   ---------------------------
       v8.9.1  |      v8.7.0
       v8.9.0  |      v7.9.0
       v8.8.1  |      v7.7.4
       v8.8.0  |      v7.7.3
      v7.10.1  |      v7.7.2
      v7.10.0  |      v7.7.1
       v7.8.0  |      v7.7.0
      v6.12.0  |      v6.7.0
      v6.11.5  |     v5.11.1
      v6.11.4  |     v5.11.0
      v6.11.3  |      v5.9.1
      v6.11.2  |      v5.9.0
      v6.11.1  |      v5.7.1
      v6.11.0  |      v5.7.0
      v6.10.3  |    v0.11.16

For a complete list, visit http://coreybutler.github.io/nodedistro

好像依然不对,Node 官网上显示的最新版本明明是 9.11.1。

既然命令输出结果的最后说在 http://coreybutler.github.io/nodedistro 可以看到完整的版本列表。那就看看吧。

这。。。第一反应是这个项目不维护了?去这个项目的 GitHub 首页看了看似乎并没有这方面的声明。

死马当死马医。于是强制安装一下最新版本试试:

$ nvm install latest
Version 9.11.1 is not available. If you are attempting to download a "just released" version,
it may not be recognized by the nvm service yet (updated hourly). If you feel this is in error and
you know the version exists, please visit http://github.com/coreybutler/nodedistro and submit a PR.

这次依然安装不成功,但是在输出中给出了另一个 GitHub 链接。打开一看,页面赫然写着 DEPRECATED!

大概意思是:nvm-windows 需要维护一个 Node 的版本列表。由于早期 Node 官方并没有这种数据。于是 nvm-windows 的作者创建了这个仓库。后来 Node 官方开始维护 https://nodejs.org/download/release/index.json。于是作者也放弃自己维护这个仓库转而使用官方的列表了。nvm-windows 1.1.0 是最后一个使用非官方列表的版本。

下意识的检查了一下我的版本:

$ nvm version
1.1.0

看来就是这个原因了。于是升级到 nvm-windows 的最新版本。再次 nvm list available,一切正常。

$ nvm version
1.1.5

$ nvm list available

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    9.11.1    |    8.11.1    |   0.12.18    |   0.11.16    |
|    9.11.0    |    8.11.0    |   0.12.17    |   0.11.15    |
|    9.10.1    |    8.10.0    |   0.12.16    |   0.11.14    |
|    9.10.0    |    8.9.4     |   0.12.15    |   0.11.13    |
|    9.9.0     |    8.9.3     |   0.12.14    |   0.11.12    |
|    9.8.0     |    8.9.2     |   0.12.13    |   0.11.11    |
|    9.7.1     |    8.9.1     |   0.12.12    |   0.11.10    |
|    9.7.0     |    8.9.0     |   0.12.11    |    0.11.9    |
|    9.6.1     |    6.14.1    |   0.12.10    |    0.11.8    |
|    9.6.0     |    6.14.0    |    0.12.9    |    0.11.7    |
|    9.5.0     |    6.13.1    |    0.12.8    |    0.11.6    |
|    9.4.0     |    6.13.0    |    0.12.7    |    0.11.5    |
|    9.3.0     |    6.12.3    |    0.12.6    |    0.11.4    |
|    9.2.1     |    6.12.2    |    0.12.5    |    0.11.3    |
|    9.2.0     |    6.12.1    |    0.12.4    |    0.11.2    |
|    9.1.0     |    6.12.0    |    0.12.3    |    0.11.1    |
|    9.0.0     |    6.11.5    |    0.12.2    |    0.11.0    |
|    8.8.1     |    6.11.4    |    0.12.1    |    0.9.12    |
|    8.8.0     |    6.11.3    |    0.12.0    |    0.9.11    |
|    8.7.0     |    6.11.2    |   0.10.48    |    0.9.10    |

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