# inspired by http://broken-by.me/lazy-load-nvm/ NODE_COMMANDS=(nvm npm node npx yarn) load_nvm() { export NVM_DIR=~/.nvm [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" } for cmd in ${NODE_COMMANDS[@]} do eval "${cmd}(){ unset -f ${NODE_COMMANDS[*]}; load_nvm; ${cmd} \$@ }" done