Brew Npm
No matter if you are working on backend or are in the frontend camp, Node.js is getting more popular day by day and you may need to install it at some point. There is plenty of ways to install it on your operating system and I am about to show you the most popular methods and highlight pros and cons of each of them.
Pre-built installer for your platform #
The easiest and most obvious way is to download a pre-built installer for your platform from the Node.js downloads page. Installation itself is very straight forward — next, next, next, done.
Despite the fact it is the easiest way of installing it, it comes with many disadvantages. It locks you to a particular version — it may not be a big issue on day one but it can be in the long run if you are willing to jump between projects that depend on different versions. Another (worst) issue with this method is the fact that it requires admin permissions (sudo
) to install package globally. I published “Fix privileges and never again use sudo with npm” with some solutions for this issue, but you better check “Resolving EACCES permissions errors when installing packages globally” on official documentation or follow this article.
Node from Homebrew / Chocolatey #
Brew may have installed npm is a way unique to brew (that wasn't comptabile with the method npm uses). But from your asnwer it sounds like it works like brew, python and pip. I use brew to install python globally or to usr/local (inc pip if python 3) and then use pip to update itself either globally or for each virtualenv (project). The last option installs all global npm packages over to your new version. This way packages like mocha and node-inspector keep working. N is an npm-based node version manager. Brew update brew upgrade node. MacPorts is the other package manager for Mac. The following will update the local ports tree to get access to updated.
“Homebrew — the best friend of the macOS user” explains why I love this tool so much. Windows users can find an alternative like Chocolatey. Both of these package managers allow you to install Node.js with ease.
CLI tools like that allow you to install / uninstall software in no time and never again be bothered by insufficient permissions. Although they allow you to manage versions too, in Node.js you should use…
NVM (Node Version Manager) #
Node Version Manager is a simple bash CLI that allows you to install multiple Node.js versions and switch between them using simple commands. Although it is available for macOS and Linux only, Node.js version manager for Windows exists (ironically it is written in Go). Installation is straightforward — you can use a simple bash script or brew
(my preferred way).
Thats the way to install the latest version of Node.js.
Be curious and explore more nvm
commands on an official nvm documentation. My most frequently used commands are: install
, uninstall
, list
and use
.
It is hard to remember the version of Node.js that a project depends on — smash the version into .nvmrc
file in the root of your project and run nvm use
inside this directory. If something can be automated, it should be automated — installing the right version of dependencies is not an exception. I made a simple bash script that runs nvm use
whenever it encounters a .nvmrc
file inside your project. There is a cool zsh-nvm plugin for Zsh users that does the same job.
Homebrew Node Js Install
Do you use nvm by @creationix to manage @node versions? Have you ever forgotten to `nvm use` in your project? I have a little bash script for y'all. Put it into your .bashrc / .bash_profile and you are all set :-*https://t.co/GhVwRKYnw7#node#nodejs#nvm#js#javascriptpic.twitter.com/jWGN89rQnA
— Paweł Grzybek (@pawelgrzybek) January 12, 2019Brew Npm 7
I am glad it helped you out. Have a great day!
thank you! definitely more detailed and nicer explained than other top google ranked posts on this topic. What are the most important reasons to use nvm over brew?
Hi.
Thanks for nice words. The main reason why I use nvm is the fact that I work on multiple projects. Some of them are built with the latest node runtime, some of server-less lambda stuff that I work on is on 8.10. The ease of switching versions is extremely convenient. Other than that and if you always work with the latest version I would suggest being stick to `brew install node`.
Have a great day 🥑
Very helpful, thank you.
It should be noted that installing nvm with Homebrew is not officially supported:
Homebrew installation is not supported. If you have issues with homebrew-installed nvm, please brew uninstall it, and install it using the instructions below, before filing an issue.
Yes you are right.
The only reason why is the fact that nvm needs to be added to shell session. Official installation script does it for you. Brew installation requires a few lines of code to be added to .zshrc / .bashrc / .whareverrc...
Post-install message from brew formula gives a detailed instruction about this step.
Thanks for contribution. Have a fantastic day!
Thank you. Now, I can move on with my Node.js course. Best wishes.
My pleasure. Good luck in your programming career!
Thanks for share! Very useful information, just add the notes about the missing lines in the ~/.bash_profile that we should add when we install nvm through brew
Thanks a ton for suggestion. I will update this article at some point. Have a great day Enrique 🥑