# 2026-04-10 登录 Shell 默认使用 Node 25 实施记录 ## 变更内容 - 保持 `nvm` 默认别名为 `25` - 在 `~/.zprofile` 中补充 `nvm` 初始化,并在登录 shell 启动时自动执行 `nvm use default` ## 根因分析 - `nvm alias default 25` 已经存在,但仅在交互式 shell 中可用 - `zsh -lc` 启动的是登录非交互 shell,不会读取 `~/.zshrc` - 因此这类场景下 `node`、`npm`、`npx` 未进入 PATH,表现为 `npx` 启动失败 ## 修改文件 - `~/.zprofile` - `doc/implementation-report-2026-04-10-login-shell-default-node25.md` ## 验证项 - 验证登录 shell 在不手动执行 `nvm use` 的情况下可直接识别 `node` - 验证登录 shell 在不手动执行 `nvm use` 的情况下可直接识别 `npx` - 验证 `nvm` 默认别名仍然指向 `25` ## 执行命令 - `zsh -lc 'nvm alias default 25'` - `zsh -lc 'echo NODE=$(node -v); echo NPM=$(npm -v); echo NPX=$(npx -v); echo NODE_PATH=$(command -v node); echo NPX_PATH=$(command -v npx); echo NVM_CURRENT=$(nvm current); echo NVM_ALIAS=$(nvm alias default | tail -n 1)'` ## 验证结果 - `nvm` 默认别名输出为 `default -> 25 (-> v25.9.0 *)` - 登录 shell 输出 `NODE=v25.9.0` - 登录 shell 输出 `NPM=11.12.1` - 登录 shell 输出 `NPX=11.12.1` - 登录 shell 输出 `NODE_PATH=/Users/wkc/.nvm/versions/node/v25.9.0/bin/node` - 登录 shell 输出 `NPX_PATH=/Users/wkc/.nvm/versions/node/v25.9.0/bin/npx` - 登录 shell 输出 `NVM_CURRENT=v25.9.0` - 登录 shell 输出 `NVM_ALIAS=default -> 25 (-> v25.9.0 *)` ## 结论 - `zsh -lc` 场景下已默认切换到 Node `25.9.0` - `npx` 在登录 shell 中已可直接使用,无需先手动执行 `nvm use 25`