diff --git a/zsh/nodejs.zsh b/zsh/nodejs.zsh index 570d66c..a0e6601 100755 --- a/zsh/nodejs.zsh +++ b/zsh/nodejs.zsh @@ -40,3 +40,32 @@ install_node_global_packages () { npm install -g "${packages[@]}" } + +if [ -f "$HOME/.nvm/nvm.sh" ]; then + export NVM_DIR="$HOME/.nvm" + + # If default alias is set, add that Node version's bin direcotry to PATH to + # ensure CLI tools from npm packages work before nvm is lazy-loaded. + if [ -s "$NVM_DIR/alias/default" ]; then + path_prepend "$NVM_DIR/versions/node/$(cat "$NVM_DIR/alias/default")/bin" + fi + + # lazy-load nvm + nvm() { + load-nvm + nvm "$@" + } + + _nvm() { + load-nvm + _nvm "$@" + } + + compctl -K _nvm nvm + + load-nvm() { + unset -f load-nvm nvm _nvm + source "$NVM_DIR/nvm.sh" + [ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion" + } +fi