在 M1 Mac 上安装 Node

52

我有一台搭载M1芯片的新Mac,想要安装Node。以前我是用Homebrew来安装的。现在,如果我安装Homebrew,强烈建议我使用Rosetta,所以我就这么做了。下一步:安装Node。所以我不再使用brew install node,而是使用arch -x86_64 brew install node

这个方法可以正常工作,但我想知道,我现在是否以次优的方式使用Node?Node是否也在使用Rosetta,而不是直接在M1芯片上运行?


如果您的安装不正常,请始终执行 brew info node。例如,brew info node@16 将为您提供以下命令,以使其正确运行:echo 'export PATH="/opt/homebrew/opt/node@16/bin:$PATH"' >> ~/.zshrc - jpmottin
8个回答

49

根据您的项目依赖关系,您可能需要在x86架构上运行node,因为它可以帮助您解决旧版本node的错误。如果像我一样,在您的尝试中已经安装了node,您可以使用以下命令来帮助您排序(假设您已经安装了NVM):

$ nvm uninstall 14
$ arch -x86_64 zsh 
$ nvm install 14
$ nvm alias default 14

考虑将上面的 14 替换为您要尝试运行的任何节点版本。

安装后,您可以运行 node,然后跟随 process.arch 以确认 node 正在以 x64 模式运行:

$ node
> process.arch
'x64'

请参阅此处的M1文档:https://github.com/nvm-sh/nvm#install--update-script - scolestock
每当我使用 $ arch -x86_64 zsh 更改架构时,就会出现“nvm命令未找到”的错误。 - Rohr Facu
@RohrFacu 在运行 nvm 前尝试运行 source ~/.profile ...? - Sators
如何改回去?!@Sators - Akhila
2
@Akhila Try arch -arm64 zsh - Giwan

24

我刚拿到我的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

希望这能帮到你。我还下载了内部版的ARM64 VSCode,它加载速度非常快。

> node -p "process.arch"

arm64

别忘记需要执行xcode-select --install命令行工具(约450MB)。


这似乎运行得非常好,但在我的情况下,即使我已经卸载了node并通过arch-x86_64 zsh进行了新的干净安装,我仍然会得到“x64”返回。 - t30_9
对于任何查看这个答案的人来说,不建议使用别名"brew"。你应该同时安装ARM和Intel版本的Brew。"brew"应该保持为brew。将x86版本设置为类似"brewx86"的别名。 - David Nedrow
是的,我原来的帖子的时代已经过去了。现在应该没有人会遇到问题了。 - Mark

19

从Node.js v16.x开始:

在此输入图片描述 https://doesitarm.com/app/nodejs/

在此输入图片描述

PS:Node.js v16在使用serverless-offline时有问题,我设法使用Node.js v15.4.0解决了它。


从Node.js 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

1
对于那些不想涉足Homebrew的人来说,这是一个很好的解决方案。 - Basil Bourque

10
作为 Node v16 的原生支持者,brew install nodenvm install 16 可在 Apple M1 笔记本电脑上运行。以下是我的当前版本。
$ nvm --version
0.39.0

$ node --version
v16.13.1

$ node -p "process.arch"
arm64

4

安装 Node 15.6.0 或更高版本:

  1. Install nvm:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
    
  2. Install NodeJS

    nvm install v15
    

要验证nvm和NodeJS是否都已成功安装,请运行:

node -v
npm -v

您可以在这里找到更多信息。


1

Nvm install 14.15.3(当前LTS)在我的所有尝试中都没有成功(使用brew arch -x86_64前缀也是如此)。但是,我能够:

  • 从github安装nvm(将“export”字符串放入~/.zhrc并执行它)
  • nvm install 15

注意:这个VSCode版本也适用于我:https://code.visualstudio.com/docs/?dv=osx&build=insiders


看起来他们在v14上有一个未解决的问题 https://github.com/nodejs/build/issues/2474 很好。 - Mark
2
问题似乎在于node v14及更早版本使用的v8版本无法构建用于苹果芯片的程序,因此他们必须将允许其构建的v8更改反向移植,以发布适用于苹果芯片的node 12或node 14版本。有点烦人,但可以理解 :-/ - taxilian

1

如果您还没有安装Rosseta 2,请使用Rosseta 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)"

现在执行此命令以安装Node.js或任何您想要的东西。
arch -x86_64 brew install <package>

谢谢。

-1

你可以使用n安装Node,详情请查看link

n --arch arm64 16

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接