From 70a0577712bc8f78e14173c8032df3701ea2887f Mon Sep 17 00:00:00 2001 From: "Guo, Quan" <1118270+guoquan@users.noreply.github.com> Date: Mon, 14 Jun 2021 01:32:47 +0800 Subject: [PATCH] feat(nvm): introduce customizable list of command that triggers lazy loading (#9946) * Add customizable list of command that triggers lazy loading * Add $NVM_LAZY_CMD * Add instruction to `NVM_LAZY_CMD` in README.md --- plugins/nvm/README.md | 6 +++++- plugins/nvm/nvm.plugin.zsh | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index 700613085..0c2bbf9f0 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -21,7 +21,11 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced: - **`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`. + for `node`, `npm`, `yarn`, and the command(s) specified by `NVM_LAZY_CMD`, so when you call either of them, + nvm will load with `nvm use default`. + +- **`NVM_LAZY_CMD`**: if you want additional command(s) to trigger lazy loading of nvm, set `NVM_LAZY_CMD` to + the command or an array of the commands. - **`NVM_AUTOLOAD`**: if `NVM_AUTOLOAD` is set to `1`, 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 diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 1e9b26e7a..3ef8cc1d8 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -28,8 +28,8 @@ fi # Call nvm when first using node, npm or yarn if (( $+NVM_LAZY )); then - function node npm yarn { - unfunction node npm yarn + function node npm yarn $NVM_LAZY_CMD { + unfunction node npm yarn $NVM_LAZY_CMD nvm use default command "$0" "$@" }