跳到主要内容

nvm 自动切换 Node 版本

通过 zsh 的命令行脚本,可以实现给每个不同的目录指定 node 版本,当在命令行中进入到该文件夹时,就会自动切换到对应版本,而离开文件夹则会切换到默认的 node 版本。

Step 1

在需要指定版本的目录中,添加 .nvmrc 文件:

echo  "v10.22.0" > .nvmrc

Step 2

$HOME/.zshrc 写入下述脚本,重启启动一下命令行,即可生效:

# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
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" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc