添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
苹果MAC系统
步骤一:先安装nvm
步骤二:配置终端自动切换钩子
根据你使用的终端(bash 或 zsh,默认是 bash,macOS 新系统默认 zsh),添加钩子脚本到终端配置文件:
情况 1:终端为 zsh(配置~/.zshrc)
1、 打开 zsh 配置文件:
open ~/.zshrc # 或用 vim ~/.zshrc
2、在文件末尾添加以下代码(钩子逻辑):
Node 版本自动切换:切换目录时检查 .nvmrc
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
若存在 .nvmrc 文件
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=(cat "${nvmrc_path}")")
若当前 Node 版本与 .nvmrc 不一致,自动切换
if [ "node_version" ]; then
nvm use # 等价于 nvm use $(cat .nvmrc)
fi
若不存在 .nvmrc,切回默认版本(可选,根据需求调整)
else
if [ "(nvm version default)" ]; then
nvm use default
fi
fi
}
绑定钩子:每次切换目录(chpwd)时执行 load-nvmrc
add-zsh-hook chpwd load-nvmrc
初始进入终端时也执行一次(确保当前目录生效)
load-nvmrc
3、保存文件后,生效配置:
source ~/.zshrc
情况 2:终端为 bash(配置~/.bashrc 或~/.bash_profile)
打开 bash 配置文件(macOS 可能需要配置 ~/.bash_profile,Linux 通常是 ~/.bashrc):
open ~/.bashrc # 或 open ~/.bash_profile
在文件末尾添加以下代码:
Node 版本自动切换:切换目录时检查 .nvmrc
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=(cat "${nvmrc_path}")")
if [ "node_version" ]; then
nvm use
fi
else
if [ "(nvm version default)" ]; then
nvm use default
fi
fi
}
bash 无 chpwd 钩子,用 PROMPT_COMMAND 模拟(每次显示命令提示符前执行)
export PROMPT_COMMAND="load-nvmrc; $PROMPT_COMMAND"
初始生效
load-nvmrc
保存后生效配置:
source ~/.bashrc # 或 source ~/.bash_profile
步骤 3:在项目目录下配置 .nvmrc
添加图片注释,不超过 140 字(可选)
步骤 4:验证自动切换
添加图片注释,不超过 140 字(可选)
Windows 系统
步骤一:安装nvm
步骤 2:配置 PowerShell 自动切换(推荐)
Windows 终端默认是 PowerShell,需通过「配置文件自动执行脚本」实现切换:
1、打开 PowerShell 配置文件(若不存在则创建):
检查配置文件路径
$PROFILE
输出示例:C:\Users\你的用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
若文件不存在,创建目录和文件
if (-not (Test-Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
用记事本打开配置文件
notepad $PROFILE
2、在配置文件中添加以下 PowerShell 脚本(自动切换逻辑):
Node 版本自动切换:监听目录变化,检查 .nvmrc
function Check-Nvmrc {
获取当前目录的 .nvmrc 路径
$nvmrcPath = Join-Path (Get-Location) ".nvmrc"
if (Test-Path $nvmrcPath) {
读取 .nvmrc 中的版本号
nvmrcPath -Raw | ForEach-Object { $_.Trim() }
获取当前 Node 版本
$currentVersion = (node -v 2>&1) -replace 'v', '' # 去除 "v" 前缀(如 v18.17.0 → 18.17.0)
若当前版本与目标版本不一致,执行 nvm use
if (targetVersion) {
Write-Host "Found .nvmrc: switching to Node $targetVersion" -ForegroundColor Cyan
nvm use $targetVersion
}
}
}
初始进入终端时执行一次
Check-Nvmrc
监听目录切换事件(PowerShell 5.1+ 支持)
Register-EngineEvent -SourceIdentifier PowerShell.LocationChanged -Action {
Check-Nvmrc
} | Out-Null
3、保存文件后,重启 PowerShell(非管理员模式即可),生效配置。
步骤 3:在项目目录下配置 .nvmrc
步骤 4:验证自动切换