Browse Source

Add NVM_LAZY_LOAD_EXTRA_COMMANDS option (#67)

pull/75/head
Joeri de Gooijer 4 years ago
committed by GitHub
parent
commit
23067bd9bb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      README.md
  2. 39
      tests/options/NVM_LAZY_LOAD_EXTRA_COMMANDS
  3. 1
      zsh-nvm.plugin.zsh

11
README.md

@ -108,6 +108,17 @@ Performance comparison:
( _zsh_nvm_lazy_load; ) 0.01s user 0.01s system 168% cpu 0.012 total ( _zsh_nvm_lazy_load; ) 0.01s user 0.01s system 168% cpu 0.012 total
``` ```
#### Extra commands to trigger lazy loading
By default lazy loading nvm is triggered by running the `nvm`, `node`, `npm` commands or any installed npm global binaries.
If you want to trigger the lazy loading via extra arbitrary commands you can define `NVM_LAZY_LOAD_EXTRA_COMMANDS` and set it to an array of commands as strings.
This can be usefull if programs are not in the above list of binaries but do depend on the availability of `node`, e.g. a vim plugin.
```shell
export NVM_LAZY_LOAD_EXTRA_COMMANDS=('vim')
vim --version
#node is now loaded
```
### Don't autoload node ### Don't autoload node
By default when `nvm` is loaded it'll automatically run `nvm use default` and load your default `node` version along with `npm` and any global modules. You can disable this behaviour by exporting the `NVM_NO_USE` environment variable and setting it to `true`. It must be set before `zsh-nvm` is loaded. By default when `nvm` is loaded it'll automatically run `nvm use default` and load your default `node` version along with `npm` and any global modules. You can disable this behaviour by exporting the `NVM_NO_USE` environment variable and setting it to `true`. It must be set before `zsh-nvm` is loaded.

39
tests/options/NVM_LAZY_LOAD_EXTRA_COMMANDS

@ -0,0 +1,39 @@
#!/bin/sh
source ../common.sh
# Node.js version to install
node_version=v5.11.0
# Load zsh-nvm and install Node.js in subshell
(load_zsh_nvm && nvm install "$node_version" && [[ "$(node --version)" == "$node_version" ]]) || die "node wasn't installed"
# Check node isn't available
[[ "$(node --version)" != "$node_version" ]] || die "node shouldn't be available $(node --version)"
# Set NVM_LAZY_LOAD to true
export NVM_LAZY_LOAD=true
export NVM_LAZY_LOAD_EXTRA_COMMANDS=('hostname' 'whoami')
# Load zsh-nvm
load_zsh_nvm
# Check nvm is a lazy load function
[[ $(which nvm) == *"_zsh_nvm_load"* ]] || die "nvm should be a lazy load function"
# Check node is a lazy load function
[[ $(command -v node) == "node" ]] || die "node should be a shell function"
# Check npm is a lazy load function
[[ $(command -v npm) == "npm" ]] || die "npm should be a shell function"
# Init lazy loader
whoami || die "couldn't run lazy loader"
# Check nvm is not a lazy load function
[[ $(which nvm) != *"_zsh_nvm_load"* ]] || die "nvm should not be a lazy load function"
# Check node is a binary
[[ "$(command -v node)" == "$(nvm_version_path $node_version)/bin/node" ]] || die "node should now be a binary"
# Check npm is a binary
[[ "$(command -v npm)" == "$(nvm_version_path $node_version)/bin/npm" ]] || die "npm should now be a binary"

1
zsh-nvm.plugin.zsh

@ -93,6 +93,7 @@ _zsh_nvm_lazy_load() {
# Add nvm # Add nvm
global_binaries+=('nvm') global_binaries+=('nvm')
global_binaries+=($NVM_LAZY_LOAD_EXTRA_COMMANDS)
# Remove any binaries that conflict with current aliases # Remove any binaries that conflict with current aliases
local cmds local cmds

Loading…
Cancel
Save