DEV Community

Discussion on: Building a VSCode Extension: Part Two

Collapse
 
codebycorey profile image
Corey O'Donnell • Edited

True, npx would probably be better than installing them globally.

I still find nvm easier to use for first time installers than installing it through a package manager. The install script automatically adds the setup to your .bashrc

Node should not be installed using sudo. You also cannot easily manage your node version. Based on your notes, you can see it installed 14. 14 is not a LTS version, so I do not recommend installing it through apt.

Brew is a bit different and does not install node with sudo and you can better manage which version you are using.

The startup time with nvm in a terminal is minimal.

edit:
Another side effect with apt would be the automatic updates. You could run apt update and install a new breaking version of node without realizing it. Now your local scripts might not work.

Collapse
 
michaelcurrin profile image
Michael Currin

Thanks for the response. I've added NVM as an option in my Node gist and also added how to get the LTS version which is 10 or 12 depending on distro (it is 10 on my Linux Lite machine).

On Debian/Ubuntu, using sudo is a natural part of apt for curl, python3, libs etc. I don't use sudo for installing Node packages but for Node itself I think it is fine. Debian community is focused on security and stability so that's why they won't be using the latest.

On my work Mac I commented out the NVM activation lines in my rc file and it took my terminal setup time from seconds to near instant. I never had the issue before the mac upgrade that I can remember so maybe it's a Catalina or ZSH thing.

Yes you're right about the auto update with apt is a risk. But that is acceptable to me. I get the latest security updates with apt and any breaking bugs should be fixed quickly. I think breaking syntax is unlikely since JavaScript syntax is backwards compatible to not break things on Node and the browser.
If you use some bleeding edge modern syntax then yes it is going maybe change.

Thread Thread
 
michaelcurrin profile image
Michael Currin

Also you can lock an apt package version. Today I learned!

askubuntu.com/questions/18654/how-...

Thread Thread
 
codebycorey profile image
Corey O'Donnell • Edited

I never really noticed that load time for NVM. The half a second it would take on my machine didn't bother me but I decided to look into it.

When you source nvm, you can add --no-use to it.
no-use documentation
This will then prevent nvm from sourcing node until you run nvm use.
This should pretty much source the nvm script instantly now.

Thread Thread
 
michaelcurrin profile image
Michael Currin

Thanks for sharing.

Works for me.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" --no-use
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"