Browse Source

fix(nvm): don't try to load nvm via `brew` if not found (#10878)

Fixes #10878
Marc Cornellà 3 years ago
parent
commit
8741664e55
1 changed files with 5 additions and 3 deletions
  1. 5 3
      plugins/nvm/nvm.plugin.zsh

+ 5 - 3
plugins/nvm/nvm.plugin.zsh

@@ -8,12 +8,13 @@ if [[ -z "$NVM_DIR" ]]; then
 fi
 
 # Don't try to load nvm if command already available
-which nvm &> /dev/null && return
+# Note: nvm is a function so we need to use `which`
+! which nvm &>/dev/null || return
 
 if [[ -f "$NVM_DIR/nvm.sh" ]]; then
   # Load nvm if it exists in $NVM_DIR
   source "$NVM_DIR/nvm.sh" ${NVM_LAZY+"--no-use"}
-else
+elif (( $+commands[brew] )); then
   # Otherwise try to load nvm installed via Homebrew
   # User can set this if they have an unusual Homebrew setup
   NVM_HOMEBREW="${NVM_HOMEBREW:-${HOMEBREW_PREFIX:-$(brew --prefix)}/opt/nvm}"
@@ -21,9 +22,10 @@ else
   if [[ -f "$NVM_HOMEBREW/nvm.sh" ]]; then
     source "$NVM_HOMEBREW/nvm.sh" ${NVM_LAZY+"--no-use"}
   else
-    # Exit the plugin if we couldn't find nvm
     return
   fi
+else
+  return
 fi
 
 # Call nvm when first using node, npm or yarn