Установите узел на M1 Mac

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

Это отлично работает, только мне интересно, я сейчас использую узел неоптимальным образом? Использует ли Node Rosetta вместо непосредственного запуска на чипе M1?

Всегда делайте brew info node, если ваша установка не в порядке. Например, brew info node@16 дает вам эту команду, чтобы она работала правильно echo 'export PATH = "/opt/homebrew/opt/node@16/bin:$PATH"' >> ~/.zshrc.

jpmottin 04.12.2021 11:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
49
1
113 476
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Я только что получил свой 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.

t30_9 02.10.2022 13:26

Установка Nvm 14.15.3 (текущая LTS) не увенчалась успехом ни в одной из попыток (также с префиксом brew arch -x86_64). Но я смог:

  • установить nvm из github (поместив строку «export» в ~/.zhrc и выполнив ее)
  • нвм установить 15

Примечание. У меня работает и эта версия VSCode: https://code.visualstudio.com/docs/?dv=osx&build=insiders

Похоже, у них есть открытая проблема на v14 github.com/nodejs/build/issues/2474 хороший момент.

Mark 06.01.2021 16:16

Проблема, по-видимому, заключается в том, что Node v14 и более ранние версии используют версии v8, которые не собираются для Apple Silicon, поэтому им придется поддерживать изменения v8, которые позволяют ему собираться, чтобы выпустить Node 12 или Node 14 для Apple. кремний. Немного обидно, но понятно :-/

taxilian 06.01.2021 23:10

Откройте терминал с помощью Россета 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

scolestock 15.12.2021 19:28

всякий раз, когда я меняю арку с помощью $ arch -x86_64 zsh, я получаю, что команда nvm не найдена

Rohr Facu 22.03.2022 15:41

@RohrFacu Попробуйте побегать source ~/.profile, прежде чем бежать nvm...?

Sators 22.03.2022 16:52

Как изменить это обратно?! @Саторс

Akhila 02.03.2023 10:27

@Ахила Попробуйте arch -arm64 zsh

Giwan 03.03.2023 15:26

Из узла v16.x:

https://doesitarm.com/app/nodejs/

PS: у узла v16 есть проблемы с serverless-offline. Мне удалось решить это с помощью узла v15.4.0


Из узла v15.x:

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.

Basil Bourque 27.09.2021 00:46

вы можете установить узел, используя n, перейдите по ссылке .

n --arch arm64 16

Чтобы установить Node 15.6.0 или выше:

  1. Установите НВМ:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
    
  2. Установить 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

Другие вопросы по теме