diff --git a/README.md b/README.md index 5546eaae6e..b8be50180e 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,7 @@ If the above doesn't fix the problem, you may try the following: - For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) -**Note** For Macs with the M1 chip, node started providing **arm64** arch darwin packages since v16.0.0. For earlier versions, there were only **darwin_x64** packages available but no **darwin_arm64**. If you are facing issues installing node using `nvm`, you may want to update to v16 or later. +**Note** For Macs with the M1 chip, node started offering **arm64** arch darwin packages since v16.0.0 and experimental **arm64** support when compiling from source since v14.17.0. If you are facing issues installing node using `nvm`, you may want to update to one of those versions or later. #### Ansible diff --git a/nvm.sh b/nvm.sh index ede616e716..d6af5332c4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2110,9 +2110,12 @@ nvm_get_download_slug() { fi fi - # If node version in below 16.0.0 then there is no arm64 packages available in node repositories, so we have to install "x64" arch packages - # If running MAC M1 :: arm64 arch and Darwin OS then use "x64" Architecture because node doesn't provide darwin_arm64 package below v16.0.0 - if nvm_version_greater '16.0.0' "${VERSION}"; then + # If running MAC M1 :: Node v14.17.0 was the first version to offer official experimental support: + # https://github.com/nodejs/node/issues/40126 (although binary distributions aren't available until v16) + if \ + nvm_version_greater '14.17.0' "${VERSION}" \ + || (nvm_version_greater_than_or_equal_to "${VERSION}" '15.0.0' && nvm_version_greater '16.0.0' "${VERSION}") \ + ; then if [ "_${NVM_OS}" = '_darwin' ] && [ "${NVM_ARCH}" = 'arm64' ]; then NVM_ARCH=x64 fi