У меня новый Mac с чипом M1, и я хочу установить Node. Я делал это с Homebrew. Теперь, если я устанавливаю Homebrew, мне настоятельно рекомендуется использовать Rosetta, что я и сделал. Следующий шаг: установка Node. Поэтому вместо brew install node я делаю arch -x86_64 brew install node.
Это отлично работает, только мне интересно, я сейчас использую узел неоптимальным образом? Использует ли Node Rosetta вместо непосредственного запуска на чипе M1?





Я только что получил свой M1 Mac mini. Я добавил псевдоним, так как я использую oh-my-zsh в моем ~/.zshrc для alias brew=arch -x86_64 brew, поэтому мне не нужно продолжать печатать все это. Я brew install nvm затем nvm ls-remote и установил v15.5.0. Он строится DV8_TARGET_ARCH_ARM64.
Надеюсь, это поможет. Я также вытащил инсайдеры VSCode для ARM64. Загружается за секунду.
> node -p "process.arch" arm64
Не забывайте, что вам нужны xcode-select --install инструменты командной строки (~ 450 МБ).
Кажется, это работает довольно хорошо, но в моем случае я все еще получаю «x64», даже несмотря на то, что я удалил узел и сделал новую чистую установку через arch -x86_64 zsh.
Установка Nvm 14.15.3 (текущая LTS) не увенчалась успехом ни в одной из попыток (также с префиксом brew arch -x86_64). Но я смог:
Примечание. У меня работает и эта версия VSCode: https://code.visualstudio.com/docs/?dv=osx&build=insiders
Похоже, у них есть открытая проблема на v14 github.com/nodejs/build/issues/2474 хороший момент.
Проблема, по-видимому, заключается в том, что Node v14 и более ранние версии используют версии v8, которые не собираются для Apple Silicon, поэтому им придется поддерживать изменения v8, которые позволяют ему собираться, чтобы выпустить Node 12 или Node 14 для Apple. кремний. Немного обидно, но понятно :-/
Откройте терминал с помощью Россета 2, если вы еще не установили Россета2 Просто проверьте мой блог, чтобы настроить его
https://siddhantjohari.medium.com/setting-up-react-native-in-mac-m1-aaf18c37fc34
Установите Homebrew с помощью этой команды.
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Теперь нажмите эту команду, чтобы установить nodejs или все, что вы хотите
arch -x86_64 brew install <package>
Спасибо.
В зависимости от зависимостей вашего проекта вам может понадобиться запустить узел на архитектуре x86, поскольку это может помочь вам избежать неприятных ошибок в более старых версиях узла. Если, как и я, вы уже установили узел в своих попытках здесь, вы можете использовать следующее, чтобы помочь вам разобраться (при условии, что вы уже установили NVM):
$ nvm uninstall 14
$ arch -x86_64 zsh
$ nvm install 14
$ nvm alias default 14
Рассмотрите возможность замены 14 выше на любую версию узла, под которой вы пытаетесь запустить.
После установки вы можете запустить узел, а затем process.arch, чтобы убедиться, что узел работает в режиме x64:
$ node
> process.arch
'x64'
См. также документы M1 здесь: github.com/nvm-sh/nvm#install--update-script
всякий раз, когда я меняю арку с помощью $ arch -x86_64 zsh, я получаю, что команда nvm не найдена
@RohrFacu Попробуйте побегать source ~/.profile, прежде чем бежать nvm...?
Как изменить это обратно?! @Саторс
@Ахила Попробуйте arch -arm64 zsh
https://doesitarm.com/app/nodejs/
PS: у узла v16 есть проблемы с serverless-offline. Мне удалось решить это с помощью узла v15.4.0
sudo xcode-select --install
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
nvm install v15
node --version
Хорошее решение для тех из нас, кто не хочет связываться с Homebrew.
вы можете установить узел, используя n, перейдите по ссылке .
n --arch arm64 16
Чтобы установить Node 15.6.0 или выше:
Установите НВМ:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Установить NodeJS
nvm install v15
Чтобы убедиться, что и nvm, и NodeJS были успешно установлены, запустите:
node -v
npm -v
Более подробную информацию вы можете найти здесь
Поскольку Node v16 изначально поддерживает Apple Silicon, brew install node или nvm install 16 будут работать на ноутбуках Apple M1.
Вот моя текущая сборка.
$ nvm --version
0.39.0
$ node --version
v16.13.1
$ node -p "process.arch"
arm64
Всегда делайте
brew info node, если ваша установка не в порядке. Например,brew info node@16дает вам эту команду, чтобы она работала правильноecho 'export PATH = "/opt/homebrew/opt/node@16/bin:$PATH"' >> ~/.zshrc.