mirror of
https://github.com/lukechilds/zsh-nvm.git
synced 2025-01-30 09:47:14 +08:00
Add NVM_LAZY_LOAD_EXTRA_COMMANDS option (#67)
This commit is contained in:
parent
fdf4d6cc7d
commit
23067bd9bb
11
README.md
11
README.md
@ -108,6 +108,17 @@ Performance comparison:
|
||||
( _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
|
||||
|
||||
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
Executable file
39
tests/options/NVM_LAZY_LOAD_EXTRA_COMMANDS
Executable file
@ -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"
|
@ -93,6 +93,7 @@ _zsh_nvm_lazy_load() {
|
||||
|
||||
# Add nvm
|
||||
global_binaries+=('nvm')
|
||||
global_binaries+=($NVM_LAZY_LOAD_EXTRA_COMMANDS)
|
||||
|
||||
# Remove any binaries that conflict with current aliases
|
||||
local cmds
|
||||
|
Loading…
Reference in New Issue
Block a user