You must be signed in to star a gist
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
|# 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/|
|unset -f nvm node npm npx|
|[ -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|
Feb 26, 2021
It works fine but vscode tasks does not works with lazy loading
Jul 30, 2021
Any idea if this solution still has merit after nvm-sh/nvm#2317?
Edit, in my case with bash, it still beats the original/vanilla by ~0.4s
Jul 5, 2022
This does not work incase a script is run directly
script.js looks like:
#!/usr/bin/env node # everything else
because env tries to find node within current paths which is not updated by the nvm due to lazy load.
solution that I found works is to create individual shell script for each of the command in the path which would trigger lazynvm(). nvm will then initialize node path at the beginning of the
$PATH so that the next node call will run the node from the right path.
# lazynvm.sh [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
# node.sh . $(dirname "$0")/lazynvm node $@
and then add both to
$PATH in your
export PATH="~/lazy-load:$PATH" # assuming both files are inside ~/lazy-load dir
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment