# 在 macOS 上通过 Homebrew 固定 Node.js LTS 版本 如果你是通过 Homebrew 安装 Node.js(`brew install node`),那你跟踪的是**当前最新正式版本**,其中可能包含奇数版本的开发分支(例如 23.x、25.x)。这些版本并不是 LTS,可能带来破坏性变更或稳定性问题。 SF 要求 Node.js **v24 或更高版本**,并且在 **LTS(偶数版本)** 上运行效果最好。本指南展示如何用 Homebrew 固定到 Node 24 LTS。 ## 检查当前版本 ```bash node --version ``` 如果输出的是奇数主版本号(例如 `v23.x`、`v25.x`),说明你当前使用的是开发版。 ## 安装 Node 24 LTS Homebrew 为 LTS 版本提供了带版本号的 formula: ```bash # 取消当前版本(可能不是 LTS)的链接 brew unlink node # 安装 Node 24 LTS brew install node@24 # 将它设为默认版本 brew link --overwrite node@24 ``` 验证: ```bash node --version # 应显示 v24.x.x ``` ## 为什么要固定到 LTS? - **稳定性**:LTS 版本会在 30 个月内持续收到 bug 修复和安全更新 - **兼容性**:包括 SF 在内的 npm 包通常都会优先测试 LTS 版本 - **可预期**:`brew upgrade` 不会把你突然升级到不稳定的开发版 ## 防止误升级 默认情况下,`brew upgrade` 会升级所有包,这可能让你离开固定版本。可以把对应 formula pin 住: ```bash brew pin node@24 ``` 如果以后想取消固定: ```bash brew unpin node@24 ``` ## 在多个版本之间切换 如果你需要同时使用多个 Node 版本(例如 22 和 24),更推荐使用版本管理器: - **[nvm](https://github.com/nvm-sh/nvm)**:`nvm install 24 && nvm use 24` - **[fnm](https://github.com/Schniz/fnm)**:`fnm install 24 && fnm use 24`(更快,基于 Rust) - **[mise](https://mise.jdx.dev/)**:`mise use node@24`(多语言版本管理器) 这些工具允许你通过 `.node-version` 或 `.nvmrc` 为不同项目设置独立的 Node 版本。 ## 验证 SF 是否正常工作 固定版本后,执行: ```bash node --version # v24.x.x npm install -g singularity-forge sf --version ```