# 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`
