← 术语图鉴

运行环境版本

Runtime Version · 也叫 Node 版本 / Node.js / .node-version / engines

运行你代码的那个程序(比如 Node.js)的版本。版本不对,有些依赖根本跑不起来。

你可能会说:

  • “同样的代码,为什么换台机器就报错?”
  • “部署平台的 Node 版本和我电脑上的不一样,要紧吗?”

它是什么

JavaScript 项目在 Node.js 上运行,Node 有很多版本。新版本带来新功能,依赖也会随之提高要求:某个库声明"需要 Node 22.19 以上",在 22.16 上就可能直接出错。

你的电脑、同事的电脑、部署平台的构建环境,各自装着不同版本的 Node。要让它们一致,就要把版本写进项目:.node-version 或 .nvmrc 告诉平台用哪个版本,package.json 的 engines 声明最低要求。

大版本之间差异最大,小版本之间也可能差出一个关键修复。别以为"都是 22"就没问题。

打个比方

像电器的电压:同一台吹风机,插在 220 伏的插座上好好的,拿到 110 伏的地方就转不动了。代码没变,变的是它插进去的那个环境。

在这个网站里

这个网站迁到 Astro 7 之后,Cloudflare 构建环境默认的 Node 22.16 不够用:一个间接依赖要求 22.19 以上。修法是在仓库根目录放了 .node-version(写着 24),package.json 的 engines 写上 >=22.19.0。

容易搞混的地方

常见误解

主版本号一样就不会有问题

正确理解

依赖可能要求具体的小版本。22.16 和 22.19 之间,就差出了一次构建失败。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

这个项目需要哪个 Node 版本?请把它写进 .node-version,并在 package.json 的 engines 里声明最低版本;再告诉我部署平台默认用的是哪个版本、怎么让它用上我们指定的。

先知道

  • 依赖——项目运行需要、但不是你自己写的代码:框架、工具库,以及它们各自又依赖的一长串包。

接着看

  • 锁文件——把这一次安装的每个包的确切版本都记下来,让任何人、任何机器都装出一模一样的一套依赖。

在这些课里出现