如何在不同PowerShell终端中同时使用多个不同版本的Node.js
按目录/终端窗口自动切换Node.js版本的解决方案
方法1:NVM配合目录自动切换(无需额外工具)
- 在每个项目根目录创建
.nvmrc文件,写入所需的Node.js版本号,比如16.18.0或lts/gallium - 打开你的shell配置文件(
~/.bashrc、~/.zshrc等),添加以下脚本:
cd() { builtin cd "$@" || return local nvmrc_path=$(nvm_find_nvmrc) if [ -n "$nvmrc_path" ]; then local target_version=$(cat "${nvmrc_path}") local current_version=$(nvm version) if [ "$current_version" != "v$target_version" ]; then nvm use "$target_version" fi elif [ "$current_version" != "$(nvm version default)" ]; then nvm use default fi }
- 重启终端或执行
source ~/.zshrc(对应你的shell类型)生效,之后进入项目目录会自动切换到指定版本,离开目录则恢复默认版本
方法2:给单个终端窗口绑定固定版本
如果需要同时开多个终端处理不同项目,直接在目标终端窗口执行:
nvm use <指定版本号>
该窗口会一直保持这个Node版本,新开的终端不受影响,适合多项目并行操作的场景
方法3:用direnv实现更灵活的环境隔离
- 安装direnv(通过包管理器,比如
brew install direnv或sudo apt install direnv) - 在shell配置文件中添加:
eval "$(direnv hook zsh)" # bash环境替换为bash
- 在项目根目录创建
.envrc文件,写入:
nvm use 14.21.3
- 执行
direnv allow授权该目录的环境配置,之后进入目录会自动加载指定版本,离开后自动恢复系统默认环境
内容的提问来源于stack exchange,提问作者asgallant
相关产品推荐
相关产品推荐

