Move from this Gist
Pull request is available. Please help me contribute this one 😂.
- Homebrew should be installed (Command line tools for Xcode are included).
-
Install
nvm
via Homebrew$
brew install nvm
-
Add following line to your profile. (
.profile
or.zshrc
or.zprofile
)# NVM export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh
-
Close and open your terminal again. Or Choose one from the following command once for reload your profile. (
.profile
or.zshrc
or.zprofile
)Example
- $
source ~/.profile
- $
source ~/.zshrc
- $
source ~/.zprofile
- $
-
Verify
nvm
is installed$
nvm --version
-
Check all avaliable version by this command
$
nvm ls-remote
-
Install NodeJS (Recommended to install LTS version. Current LTS is Erbium)
$
nvm install --lts=Erbium
-
Check installed NodeJS in your machine.
$
nvm ls
-
Set global nodejs version to environment.
$
nvm use default
See more about nvm
: https://github.com/creationix/nvm
-
Install
yarn
via Homebrew$
brew install yarn
-
Remove
node
dependencies from Homebrew$
brew uninstall node --ignore-dependencies
-
Checkout
node
in environment$PATH
$
which node
It should be return =>
/User/<your-user-name>/.nvm/versions/node/<latest-node-lts-version>/bin/node
-
Checkout
brew doctor
there should show message WARNING missing yarn dependencies$
brew doctor
-
Create blank folder and create symbol link
node
folder fromnvm
foryarn
in Homebrew.$
nvm current
=> v12.13.0 (Latest LTS: Erbium) (This should be Global node version)$
mkdir /usr/local/Cellar/node
$
ln -s ~/.nvm/versions/node/$(nvm current)/ /usr/local/Cellar/node
-
Overwrite
node, npm and npx
from linkednode
in/usr/local/Cellar/node
to/usr/local/bin/
homebrew$
brew link --overwrite node
-
Checkout
ls -la /usr/local/bin
to see overwritednode, npm and npx
-
Checkout
brew doctor
again. There shouldn't have WARNING message.$
brew doctor
-
Prevent Homebrew upgrading node version
$
brew pin node
-
Enjoy ! ❤️
-
Checkout
nvm
for to usenode
version (For this example case I will use LTS Erbium)$
nvm list
$ nvm list -> v12.13.1 system default -> 12.13.1 (-> v12.13.1) node -> stable (-> v12.13.1) (default) stable -> 12.13 (-> v12.13.1) (default) iojs -> N/A (default) unstable -> N/A (default) lts/* -> lts/erbium (-> v12.13.1) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.16.2 (-> N/A) lts/dubnium -> v10.17.0 (-> N/A) lts/erbium -> v12.13.1
* See more about
nvm
: https://github.com/creationix/nvm -
Remove the symbol link which we linked
node
in Homebrew/usr/local/Cellar/node
$
rm -rf /usr/local/Cellar/node
-
Unpin
node
in Homebrew for upgradingyarn
$
brew unpin node
-
Upgrade
yarn
$
brew upgrade yarn
-
Continue on Part B 2. - 10. steps again.
-
Say yay 😝