For example I want to install either 7.9 or 7.10 but want to avoid Node 8 due to the webpack node-sass breaking bug.

When I run brew search node this is what I see:

❯ brew search node leafnode llnode node ✔ node-build > node@0.10 node@0.12 node@4 node@6 nodebrew nodeenv nodenv caskroom/cask/node-profiler

If you meant "node" specifically: It was migrated from caskroom/cask to homebrew/core. You can access it again by running: brew tap homebrew/core

There is node which is checked (my current version is v7.4.0 then node@0.10, node@0.12, node@4 and node@6?

The reason I can't just fully upgrade to 8 is node-sass won't work in webpack.


Just installed NVM and got this crazy error log:

=> nvm source string already in /Users/leongaban/.zshrc => Appending bash_completion source string to /Users/leongaban/.zshrc npm ERR! missing: is-path-cwd@^1.0.0, required by del@3.0.0 npm ERR! missing: is-path-in-cwd@^1.0.0, required by del@3.0.0 npm ERR! missing: p-map@^1.1.1, required by del@3.0.0 npm ERR! missing: pify@^3.0.0, required by del@3.0.0 npm ERR! missing: rimraf@^2.2.8, required by del@3.0.0 npm ERR! missing: bluebird@^3.1.1, required by gulp-html-replace@1.6.2 npm ERR! missing: clone@^1.0.2, required by gulp-html-replace@1.6.2

...

=> You currently have modules installed globally with `npm`. These will no => longer be linked to the active version of Node when you install a new node => with `nvm`; and they may (depending on how you construct your `$PATH`) => override the binaries of modules installed with `nvm`: 

If I'm reading this right, does this mean I can't use npm to globally install packages anymore and have to use nvm?

Update

I added the export lines to my .zshrc bash (I don't use bash_profile)

❯ nvm --version 0.33.2 
4

4 Answers

There are two ways in the decision for using different version of Node. Second way is more convenient and practical by my opinion.


First way:

Install other Node version(for example 14) with using:

brew install brew unlink brew link
brew install - github brew unlink - github brew link - github
brew install node@14 brew unlink node brew link node@14 node -v 

PS You may use brew link with flag --overwrite, for example:

brew link --overwrite node@14 

PS2 Why unlink and then link again?

Documentation:

Remove symlinks for formula from Homebrew's prefix. This can be useful for temporarily disabling a formula:

brew unlink formula && commands && brew link formula

In other words:

if you have both node and node@14 installed, where node is other version(..,15 or 16), so, for set active version 14:

you must unlink node and then link to new installed version 14
brew unlink node brew link node@14

Second way:

Install Node Version Manager(nvm) and select Node version:

nvm - github nvm - home brew

brew install nvm mkdir ~/.nvm export NVM_DIR="$HOME/.nvm" [ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && . "$(brew --prefix)/opt/nvm/nvm.sh" # This loads nvm [ -s "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" ] && . "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion nvm install 14 nvm use 14 nvm list 
4

If versions on homebrew/code are defined right, you must also be able to brew install node@0.12 for example.

You can also install multiple versions and select which one you want to use with the brew switch command.

--

Anyway, I'd recommend using nvm, which can be installed through Homebrew. Although, the version on brew is buggy and they don't plan fixing it.

6

To install the latest version of node and unlink the previously installed

brew install node@14 brew unlink node brew link --overwrite node@14 echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.bash_profile node -v 
1
brew install --build-from-source node@14 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy