0 前言

Node.js 版本管理工具主要有 nvm 和 fnm 两种选择:

  • fnm: Rust 编写, 启动速度快, 跨平台支持好, 内存占用小, 推荐优先使用
  • nvm: 社区成熟稳定, 文档和生态丰富, 但 shell 脚本实现导致启动较慢, 且不原生支持 Windows

两者都支持 .nvmrc.node-version 文件, 可根据项目自动切换版本.


Node.js 包管理工具主要有 npm, yarn, pnpm, bun 四种选择:

  • pnpm: 硬链接 + 符号链接共享依赖, 安装速度快, 磁盘占用最小, 严格的依赖隔离避免幽灵依赖, 推荐优先使用
  • bun: Zig 编写的全能工具 (运行时 + 包管理 + 打包 + 测试), 安装速度极快, 但生态较新, 部分 Node.js API 兼容性待完善
  • yarn: Facebook 开发, 并行安装速度快, lockfile 可靠, 但 v1 和 v2+ 架构差异大, 功能与 npm 趋同
  • npm: Node.js 内置, 零配置开箱即用, 生态最成熟, 但安装速度较慢, node_modules 扁平化导致幽灵依赖问题

1 安装 nodejs

fnm 和 nvm 二选一即可, 建议使用 fnm

1.1 fnm

curl -fsSL https://fnm.vercel.app/install | bash
source ~/.bashrc

fnm install 24 # 安装 v24 的最新版
fnm default 24 # 设置全局默认的 node 版本为 v24

修改 ~/.bashrc, 添加 --use-on-cd 参数, 可以在切换目录的时候自动识别 .nvmrc.node-version, fnm 可以自动切换版本


# fnm
FNM_PATH="${HOME}/.local/share/fnm"
if [ -d "$FNM_PATH" ]; then
  export PATH="$FNM_PATH:$PATH"
  eval "`fnm env --use-on-cd`"
fi

1.2 nvm

# 自动获取最新版本的 nvm 并安装
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')/install.sh" | bash
source ~/.bashrc # 或者重新进一下终端
nvm -v

安装 nodejs

nvm install --lts
nvm use --lts
node --version

2 安装 pnpm

npm install -g pnpm
pnpm setup
source ~/.bashrc

3 pnpm 配置优化

3.1 网络配置

# 镜像源 (国内推荐 npmmirror, 海外保持官方源)
pnpm config set --global registry https://registry.npmmirror.com
pnpm config set --global registry https://registry.npmjs.org
# 网络超时与重试
pnpm config set --global fetch-retries 5
pnpm config set --global fetch-retry-maxtimeout 120000
pnpm config set --global fetch-timeout 180000
pnpm config set --global prefer-offline true

3.2 抑制警告

pnpm 安装时常见大量 WARNING, 主要来源于 peer dependencies 和 deprecated 包.

# 日志级别设为 error, 只显示错误
# 自动安装 peer dependencies, 减少 missing peer 警告
# 出现 peer dependencies 问题不阻断安装
pnpm config set --global loglevel error
pnpm config set --global auto-install-peers true
pnpm config set --global strict-peer-dependencies false

4 安装组件

pnpm install -g @anthropic-ai/claude-code
pnpm install -g @google/gemini-cli
pnpm install -g @openai/codex

以上