fix(nvm): disable lazy-loading if autoload is set

Closes #11748
This commit is contained in:
Carlo Sala 2023-06-20 09:36:11 +02:00
parent 4ba17232da
commit b5be2d39e2
No known key found for this signature in database
GPG key ID: DA6FB450C1A4FE9A
2 changed files with 16 additions and 5 deletions

View file

@ -43,6 +43,9 @@ zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ...
#### `.nvmrc` autoload #### `.nvmrc` autoload
Note: _this option cannot be used at the same time as `lazy`. `autoload` will override it and load `nvm` at
startup._
If set, the plugin will automatically load a node version when if finds a If set, the plugin will automatically load a node version when if finds a
[`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node [`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node
version to load. This can be done, similar as previous options, adding: version to load. This can be done, similar as previous options, adding:

View file

@ -16,7 +16,18 @@ fi
# Note: nvm is a function so we need to use `which` # Note: nvm is a function so we need to use `which`
which nvm &>/dev/null && return which nvm &>/dev/null && return
if zstyle -t ':omz:plugins:nvm' lazy; then if [[ -z "$NVM_DIR" ]]; then
echo "[oh-my-zsh] nvm installation cannot be found"
echo "[oh-my-zsh] set NVM_DIR to your installation"
return
fi
if [[ ! -f "$NVM_DIR/nvm.sh" ]]; then
echo "[oh-my-zsh] nvm.sh does not exist in $NVM_DIR"
return
fi
if zstyle -t ':omz:plugins:nvm' lazy && \
! zstyle -t ':omz:plugins:nvm' autoload; then
# Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd
zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd
eval " eval "
@ -28,11 +39,8 @@ if zstyle -t ':omz:plugins:nvm' lazy; then
} }
" "
unset nvm_lazy_cmd unset nvm_lazy_cmd
elif [[ -f "$NVM_DIR/nvm.sh" ]]; then
# Load nvm if it exists in $NVM_DIR
source "$NVM_DIR/nvm.sh"
else else
return source "$NVM_DIR/nvm.sh"
fi fi
# Autoload nvm when finding a .nvmrc file in the current directory # Autoload nvm when finding a .nvmrc file in the current directory