summaryrefslogtreecommitdiff
path: root/plugins/nvm
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/nvm')
-rw-r--r--plugins/nvm/README.md12
-rw-r--r--plugins/nvm/nvm.plugin.zsh35
2 files changed, 12 insertions, 35 deletions
diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md
index d3fd980be..b5ef221d3 100644
--- a/plugins/nvm/README.md
+++ b/plugins/nvm/README.md
@@ -26,7 +26,7 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced:
#### Lazy startup
This option will help you to defer nvm's load until you use it to speed-up your zsh startup. This will source
-nvm script only when using it, and will create a function for `node`, `npm`, `pnpm`, `yarn`, and the
+nvm script only when using it, and will create a function for `node`, `npm`, `npx`, `pnpm`, `yarn`, and the
command(s) specified by `lazy-cmd` option, so when you call either of them, nvm will be loaded and run with
default version. To enable it, you can add this snippet to your zshrc, before Oh My Zsh is sourced:
@@ -43,18 +43,16 @@ zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ...
#### `.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
[`.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:
```zsh
zstyle ':omz:plugins:nvm' autoload yes
-```
-
-To remove the output generated by NVM when autoloading, you can set the following option:
-
-```zsh
-zstyle ':omz:plugins:nvm' silent-autoload yes
+zstyle ':omz:plugins:nvm' silent-autoload yes # optionally remove the output generated by NVM when autoloading
```
Note: _this will not remove regular `nvm` output_
diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh
index 20697d67d..1badbeab5 100644
--- a/plugins/nvm/nvm.plugin.zsh
+++ b/plugins/nvm/nvm.plugin.zsh
@@ -16,46 +16,25 @@ fi
# Note: nvm is a function so we need to use `which`
which nvm &>/dev/null && return
-# TODO: 2022-11-11: Remove soft-deprecate options
-if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then
- # Get list of NVM_* variable settings defined
- local -a used_vars
- used_vars=(${(o)parameters[(I)NVM_(AUTOLOAD|LAZY|LAZY_CMD)]})
- # Nicely print the list in the style `var1, var2 and var3`
- echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n"
- if (( $+NVM_AUTOLOAD )); then
- echo " zstyle ':omz:plugins:nvm' autoload yes"
- zstyle ':omz:plugins:nvm' autoload yes
- fi
- if (( $+NVM_LAZY )); then
- echo " zstyle ':omz:plugins:nvm' lazy yes"
- zstyle ':omz:plugins:nvm' lazy yes
- fi
- if (( $+NVM_LAZY_CMD )); then
- echo " zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD"
- zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD
- fi
- echo "$reset_color"
- unset used_vars NVM_AUTOLOAD NVM_LAZY NVM_LAZY_CMD
+if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then
+ return
fi
-if zstyle -t ':omz:plugins:nvm' lazy; then
+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
zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd
eval "
- function nvm node npm pnpm yarn $nvm_lazy_cmd {
- unfunction nvm node npm pnpm yarn $nvm_lazy_cmd
+ function nvm node npm npx pnpm yarn $nvm_lazy_cmd {
+ unfunction nvm node npm npx pnpm yarn $nvm_lazy_cmd
# Load nvm if it exists in \$NVM_DIR
[[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\"
\"\$0\" \"\$@\"
}
"
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
- return
+ source "$NVM_DIR/nvm.sh"
fi
# Autoload nvm when finding a .nvmrc file in the current directory