Tengo 4 años utilizando nvm
para poder utilizar varias versiones de node
en mi computadora, ya que varios proyectos requieren diferentes versiones y nvm
fue lo más sencillo y ahora lo más popular para poder tener varias versiones de node
instaladas. El único problema es que cada vez que abro la terminal, tarda 1 - 2 segundos en cargar, todo esto debido a nvm
.
En pocas palabras, nvm
soluciona mis problemas y me aguanto.
Luego me encontré con fnm
que es similar y compatible con nvm
, el desarrollador también tenía la misma frustación que yo, al intentar abrir la terminal a veces yo empezaba a escribir antes de que terminara de cargar. Pero fnm
puede tener bugs, ya que es un software nuevo, y no quería arriesgarme.
Así que decidí googlear lazy load nvm con la intención de cargar nvm
solamente cuando use node
y una vez cargado así se mantiene, y encontré la solución.
Este pequeño “snippet” hace justo lo que necesitaba.
# lazyload nvm
# all props goes to http://broken-by.me/lazy-load-nvm/
# grabbed from reddit @ https://www.reddit.com/r/node/comments/4tg5jg/lazy_load_nvm_for_faster_shell_start/
lazynvm() {
unset -f nvm node npm npx
export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
if [ -f "$NVM_DIR/bash_completion" ]; then
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
fi
}
nvm() {
lazynvm
nvm $@
}
node() {
lazynvm
node $@
}
npm() {
lazynvm
npm $@
}
npx() {
lazynvm
npx $@
}
Fuente: fl0w/lazynvm.sh