Windows 上多版本 Node.js:绝对路径胜过 nvm
nvm-windows 管 CLI,但每个服务固定绝对 node.exe,避免全局切换打挂生产。
测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1- 版本号
- 26100.33650
- 版本
- Standard / Datacenter
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-29
- 页面类型
- 方法
nvm-windows 切换的是全局符号链接(C:\Program Files\nodejs)。对 shell 方便,对服务危险。
多应用:
- 每个 Node 版本独立目录(
C:\node\20、C:\node\22)。 - 服务/脚本固定绝对
node.exe。 - 用同目录的
npm.cmd。 node_modules每应用独立,不共享全局包。
CLI 布局
Section titled “CLI 布局”nvm listnvm install 22.14.0nvm use 22.14.0where.exe nodenode --versionnvm use 后 where node 指向活动符号链接。开发方便;不是生产选择器。
C:\node\20\node.exeC:\node\22\node.exeC:\apps\api-a\server.jsC:\apps\api-b\server.js运行:
& C:\node\20\node.exe C:\apps\api-a\server.js& C:\node\22\node.exe C:\apps\api-b\server.js服务包装器必须用同一绝对路径。用 node 创建的服务在启动时走 PATH;nvm 一切换,下次重启就可能用错版本。
cd C:\apps\api-a& C:\node\20\npm.cmd ci --omit=dev用锁文件 + npm ci 做可重复安装。不要 npm install -g 应用依赖;全局包共享且无版本边界。
& C:\node\20\node.exe --version& C:\node\20\npm.cmd --versionGet-CimInstance Win32_Process -Filter "Name='node.exe'" | Select-Object ProcessId, ExecutablePath, CommandLineExecutablePath 应显示固定版本,不是 nvm 符号链接。
- 新 Node 装在旧版旁边。
- 用新绝对
node.exe跑应用测试。 - 更新服务包装器路径。
- 重启一个服务,看日志和指标。
- 回滚不需要后再删旧目录。
E1。实验室没有装 Node/nvm-windows;这是生产选择器模式,不是已复现结果。