-
-
Save soueldi/dfd00376e942cd7c8a8ccca3f3587fcb to your computer and use it in GitHub Desktop.
Install node on Apple Silicon M1 both ARM and x86 (Rosetta)
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
# Node.js on Apple Silicon | |
Node Version Manager (https://github.com/nvm-sh/nvm) works perfectly across native node installations as well as emulated Rosetta installations. | |
The trick I am using here is to install one LTS version of node under Rosetta and another stable version as native binary. | |
## TODO | |
- find a way how to run the same node version on both platforms |
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
# Run the install command from a native (ARM) terminal | |
# See https://github.com/nvm-sh/nvm#installing-and-updating | |
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash | |
# Alternatively install using brew (officially unsupported by nvm): | |
# brew install nvm | |
# Don't forget to source the command in your shell profile to make it available in new terminals! |
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
# From Rosetta Terminal (tick checkbox in Terminal right click menu -> Get Info -> Open using Rosetta) | |
# To verify you are running in Rosetta run: | |
arch | |
-> i386 | |
# Install node | |
nvm install lts/fermium | |
# Verify node installation | |
nvm use lts/fermium | |
node -e 'console.log(process.arch)' | |
-> x64 |
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
# From native Terminal | |
# To verify you are running natively: | |
arch | |
-> arm64 | |
# Install node | |
nvm install stable | |
# Verify node installation | |
nvm use stable | |
node -e 'console.log(process.arch)' | |
-> arm64 |
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
# To make DX a bit better you can alias your installations: | |
nvm alias arm stable | |
# arm -> stable (-> v15.6.0) | |
nvm alias intel lts/fermium | |
# intel -> lts/fermium (-> v14.15.4) | |
# To test aliases: | |
nvm use arm | |
# Now using node v15.6.0 (npm v7.4.0) | |
node -e 'console.log(process.arch)' | |
-> arm64 | |
nvm use intel | |
# Now using node v14.15.4 (npm v6.14.10) | |
node -e 'console.log(process.arch)' | |
-> x64 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment