summaryrefslogtreecommitdiff
path: root/plugins/nvm
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2020-10-09 16:35:47 +0200
committerMarc Cornellà <marc.cornella@live.com>2020-10-09 17:21:03 +0200
commita33c0cdb46badcc1df9a37da015a82f7f7b0a7e5 (patch)
tree8e6b9af8d18b6be4a683067cdddc0ea6280793bc /plugins/nvm
parent3e973080037ae68ac25a08545e7cdc60ba128900 (diff)
downloadzsh-a33c0cdb46badcc1df9a37da015a82f7f7b0a7e5.tar.gz
zsh-a33c0cdb46badcc1df9a37da015a82f7f7b0a7e5.tar.bz2
zsh-a33c0cdb46badcc1df9a37da015a82f7f7b0a7e5.zip
nvm: only lazy-load nvm if the NVM_LAZY setting is set
Diffstat (limited to 'plugins/nvm')
-rw-r--r--plugins/nvm/README.md4
-rw-r--r--plugins/nvm/nvm.plugin.zsh16
2 files changed, 13 insertions, 7 deletions
diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md
index 2515da9e8..ab71185cb 100644
--- a/plugins/nvm/README.md
+++ b/plugins/nvm/README.md
@@ -16,3 +16,7 @@ plugins=(... nvm)
- **`NVM_HOMEBREW`**: if you installed nvm via Homebrew, in a directory other than `/usr/local/opt/nvm`, you
can set `NVM_HOMEBREW` to be the directory where you installed it.
+
+- **`NVM_LAZY`**: if you want the plugin to defer the load of nvm to speed-up the start of your zsh session,
+ set `NVM_LAZY` to `1`. This will use the `--no-use` parameter when loading nvm, and will create a function
+ for `node`, `npm` and `yarn`, so when you call either of these three, nvm will load with `nvm use default`.
diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh
index 640f1d45c..164be5907 100644
--- a/plugins/nvm/nvm.plugin.zsh
+++ b/plugins/nvm/nvm.plugin.zsh
@@ -12,21 +12,23 @@ 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" --no-use
+ source "$NVM_DIR/nvm.sh" ${NVM_LAZY+"--no-use"}
else
# Otherwise try to load nvm installed via Homebrew
# User can set this if they have an unusual Homebrew setup
NVM_HOMEBREW="${NVM_HOMEBREW:-/usr/local/opt/nvm}"
# Load nvm from Homebrew location if it exists
- [[ -f "$NVM_HOMEBREW/nvm.sh" ]] && source "$NVM_HOMEBREW/nvm.sh" --no-use
+ [[ -f "$NVM_HOMEBREW/nvm.sh" ]] && source "$NVM_HOMEBREW/nvm.sh" ${NVM_LAZY+"--no-use"}
fi
# Call nvm when first using node, npm or yarn
-function node npm yarn {
- unfunction node npm yarn
- nvm use default
- command "$0" "$@"
-}
+if (( $+NVM_LAZY )); then
+ function node npm yarn {
+ unfunction node npm yarn
+ nvm use default
+ command "$0" "$@"
+ }
+fi
# Load nvm bash completion
for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do