SuperAPI AI 工具集

nvm-shell-integration

部署与运维

查看项目

更新于 10-16 07:53

技能介绍

用途

nvm Shell Integration 用于在切换目录时自动激活正确的 Node 版本。它通过 shell 钩子实现按项目自动切换 nvm 版本,避免每次进入项目目录后手动执行 nvm use。该技能定位为在 nvm-setup 完成基础 shell 加载之上的更深层集成。

主要能力

  • 在目录切换时自动执行 nvm use,使项目对应的 Node 版本生效。
  • 当 .nvmrc 指定的版本尚未安装时,自动执行 nvm install。
  • 提供 bash、zsh、fish 三种 shell 的自动切换钩子示例。
  • 支持停用 nvm 并恢复 PATH,例如使用 nvm deactivate 移除 PATH 中的 nvm 并恢复系统 node,或使用 nvm use system 切换到系统安装的 Node。
  • 提供验证自动切换是否生效的方法。

使用方式

以 bash 为例,将以下函数追加到 ~/.bashrc:

cdnvm() {
  command cd "$@" || return $?
  nvm_path="$(nvm_find_up .nvmrc | command tr -d '\n')"
  if [ -n "$nvm_path" ]; then
    local nvm_node_version=$(nvm version "$(cat "$nvm_path/.nvmrc")")
    if [ "$nvm_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvm_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  fi
}
alias cd='cdnvm'

停用 nvm 并恢复 PATH:

nvm deactivate   # Removes nvm from PATH, restores system node
nvm use system   # Switch to system-installed Node

验证自动切换:

echo "20" > /tmp/test-project/.nvmrc
cd /tmp/test-project   # Should auto-switch to Node 20
node -v                # Should show v20.x.x

示例文件包括:examples/shell-integration.md(集成选项概览)、examples/auto-use-bash.md(Bash 自动切换钩子)、examples/auto-use-zsh.md(Zsh 自动切换钩子)、examples/auto-use-fish.md(Fish 自动切换钩子)、examples/restore-path.md(PATH 恢复与 nvm deactivate)。

适用场景

  • 在多个使用不同 Node 版本的项目之间频繁切换目录。
  • 希望通过 .nvmrc 统一团队或本机的 Node 版本选择。
  • 需要在 bash、zsh 或 fish 中实现一致的自动版本切换体验。
  • 需要临时停用 nvm 或切回系统 Node 进行排查或对比。

限制

基础 shell 加载属于 nvm-setup 的职责,本技能只在其之上添加更深层集成。资料未提供除 bash、zsh、fish 之外其他 shell 的支持说明,也未提供 Windows 环境、具体版本兼容范围或性能影响等信息。