自媒体起步笔记(九):三个版本号不一样时,认哪一个
Day 9 装 Node.js,屏上先后出现过三个不一样的数:下载页写 v26.13.0 (LTS),包管理器源里搜到的最高是 OpenJS.NodeJS.23,装完 node -v 返回 v26.10.0。安装没失败,但三个数对不上。这篇记的是当时按什么定的取舍,以及这个判断怎么复用。
三个数,各管各的

官网下载页上的 v26.13.0 是发行方当天给出的 LTS,带 (LTS) 标记,还跟着一组平台选项:Windows、fnm、npm。它说的是「现在该装哪个」。
包管理器源里那串 OpenJS.NodeJS.* 是另一回事。winget search node 返回的是源里收录过的包,最高停在 23,是「源里现在能找到什么」。

node -v 又是第三件事:它读的是当前 shell 正在用的那个 Node,跟刚下载了什么没有必然关系。本机之前装过,所以回来 v26.10.0。

把三者当成同一个数去核对,就会得出「装失败了」的错误结论;分开看,其实一条都对得上。
判断:以官网 LTS 的主版本号为准
取舍只定一条:命令里写哪个版本,看发行方官网,不看包管理器源。
理由很实际。包管理器维护的是收录记录,更新节奏不由发行方决定,落后一两个大版本是常态。而 Astro 的安装文档写的前提条件是 Node.js 22.12.0 以上,这是一个下限,不是某个精确补丁号;只要落到 26 这条主线上,条件就满足了。
所以下载页给的命令里写的是 fnm install 26,不是 fnm install 26.13.0,也不是源里能查到的 23:
winget install Schniz.fnm
fnm install 26
主版本号够用,就把补丁号的差异留给它自己处理。写成精确的 26.13.0,反而会在下次 LTS 换补丁时失效。
复用:先定出处,再写命令
这套判断不限于 Node.js。凡是「版本号有多个出处」的场合,都可以按同一个顺序过一遍:
- 先确认文档给的是下限还是精确值。下限就按主版本走,精确值才照抄。
- 再确认包管理器源是不是唯一来源。不是的话,它只用来判断工具在不在,不用来定版本。
- 命令写完,用
node -v/npm -v这类查询确认环境可用,而不是拿它去跟下载页的数字对账。

同一个习惯延伸到后面那条 npm create astro@latest:@latest 也是把版本决定权交回发行方,本地不写死。
验证看的是「能不能往下走」
npm -v 回 11.10.0,node -v 回 v26.10.0,两个都有返回,就可以接着跑向导。向导四问答完,Template copied、Dependencies installed、Git initialized 三行都打勾,最后 npm run dev 给出本地地址——这一串能走通,就说明前面那个版本判断没问题。


知识地图进度(截至 Day 9)
「守民通识导图」的快照只画到当篇为止。Day 9 在「准备工具」下接出「建立网站」:下面是「Astro安装」,再挂「需要先安装node.js」、两个网址和 winget 的定义。Astro 学习那一支没动,图上不画。

延伸阅读
这一系列的逐点击图文版放在守民通识站上,57 步、56 张截图,末尾的知识地图可以点开放大:
浙公网安备 33010602011771号