Created
June 21, 2019 00:35
-
-
Save fideloper/903f8976206fd6ca847c05f792ac9ea8 to your computer and use it in GitHub Desktop.
Defer loading of NVM to increase new terminal init speed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Thanks to https://www.growingwiththeweb.com/2018/01/slow-nvm-init.html, modified | |
# for zsh as "type -t" works in bash but not zsh | |
# Add this to your .zshrc ... | |
# Defer initialization of nvm until nvm, node or a node-dependent command is | |
# run. Ensure this block is only run once if .bashrc gets sourced multiple times | |
# by checking whether __init_nvm is a function. | |
if [ -s "$HOME/.nvm/nvm.sh" ] && [ ! "$(type -w __init_nvm | awk '{print $2}')" = function ]; then | |
export NVM_DIR="$HOME/.nvm" | |
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" | |
declare -a __node_commands=('nvm' 'node' 'npm' 'yarn' 'gulp' 'grunt' 'webpack') | |
function __init_nvm() { | |
for i in "${__node_commands[@]}"; do unalias $i; done | |
. "$NVM_DIR"/nvm.sh | |
unset __node_commands | |
unset -f __init_nvm | |
} | |
for i in "${__node_commands[@]}"; do alias $i='__init_nvm && '$i; done | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment