每日壁纸

项目 Node 版本自动切换方案

Published on
/2 mins read/---

每天在不同项目间跳来跳去,手动敲 nvm use 确实很消磨耐心,而且万一忘了切版本,装依赖时包管理器报错能让人抓狂半天。

要实现自动化,核心逻辑通常是:在项目根目录放一个配置文件,然后让你的终端(Terminal)或编辑器(IDE)在进入该目录时自动读取并执行切换命令。

如果你使用的是 Zsh(Mac 和大多数 Linux 默认),可以通过配置 .zshrc 来实现进入目录自动运行 nvm use。

第一步:创建配置文件 在项目根目录下创建一个名为 .nvmrc 的文件,内容只写版本号:

16.20.0

第二步:配置 Shell 钩子 将以下脚本添加到你的 ~/.zshrc 文件末尾。它会监控目录变化,如果发现 .nvmrc,就自动执行切换:

# 自动调用 nvm use
autoload -U add-zsh-hook
load-nvmrc() {
  local nvmrc_path="$(nvm_find_nvmrc)"
 
  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

保存后记得运行 source ~/.zshrc 生效。

⚠️ 注意: 以上前提是安装了 nvm,同时安装了相关的node版本