3e973080037ae68ac25a08545e7cdc60ba128900

Author
Keith Yao <i@yaofur.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

nvm: speed-up nvm loading with `--no-use`

Closes #7138

Co-authored-by: Marc Cornellà <marc.cornella@live.com>

Diff

 1diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh
 2index 21fb3112b1ab17b01acb1591326d7ccd05a72b5c..640f1d45c77c984940e4c63d9ea42fbdb3b31137 100644
 3--- a/plugins/nvm/nvm.plugin.zsh
 4+++ b/plugins/nvm/nvm.plugin.zsh
 5@@ -12,15 +12,22 @@ which nvm &> /dev/null && return
 6 
 7 if [[ -f "$NVM_DIR/nvm.sh" ]]; then
 8   # Load nvm if it exists in $NVM_DIR
 9-  source "$NVM_DIR/nvm.sh"
10+  source "$NVM_DIR/nvm.sh" --no-use
11 else
12   # Otherwise try to load nvm installed via Homebrew
13   # User can set this if they have an unusual Homebrew setup
14   NVM_HOMEBREW="${NVM_HOMEBREW:-/usr/local/opt/nvm}"
15   # Load nvm from Homebrew location if it exists
16-  [[ -f "$NVM_HOMEBREW/nvm.sh" ]] && source "$NVM_HOMEBREW/nvm.sh"
17+  [[ -f "$NVM_HOMEBREW/nvm.sh" ]] && source "$NVM_HOMEBREW/nvm.sh" --no-use
18 fi
19 
20+# Call nvm when first using node, npm or yarn
21+function node npm yarn {
22+  unfunction node npm yarn
23+  nvm use default
24+  command "$0" "$@"
25+}
26+
27 # Load nvm bash completion
28 for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do
29   if [[ -f "$nvm_completion" ]]; then