在 M1 Mac 上安装节点

Posted

技术标签:

【中文标题】在 M1 Mac 上安装节点【英文标题】:Install Node on M1 Mac 【发布时间】:2021-03-28 06:22:10 【问题描述】:

对于有关二进制文件、处理器以及它们如何协同工作的问题,这里有点菜鸟:

我有一台带有 M1 芯片的新 Mac,并且想要安装 Node.js。我习惯用 Homebrew 来做这个。现在,如果我安装 Homebrew,强烈建议我使用 Rosetta,所以我这样做了。下一步:安装节点。所以我用arch -x86_64 brew install node代替brew install node

这很好用,只是我想知道,我现在是否以次优方式使用节点? Node 是否也使用 Rosetta,而不是直接在 M1 芯片上运行?

【问题讨论】:

如果您的安装不正确,请始终执行brew info node。例如,brew info node@16 为您提供该命令以使其正确运行 echo 'export PATH="/opt/homebrew/opt/node@16/bin:$PATH"' >> ~/.zshrc 【参考方案1】:

我刚拿到我的 M1 Mac mini。我确实添加了一个别名,因为我使用 oh-my-zsh 到我的 ~/.zshrcalias 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)。

【讨论】:

【参考方案2】:

根据您的项目依赖关系,您可能会发现有必要在 x86 架构上运行 node,因为它可能会让您摆脱旧版本 node.js 上令人沮丧的错误。如果像我一样,您已经在此处尝试安装了 node,您可以使用以下内容来帮助您进行排序(假设您已经安装了 NVM):

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

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

安装完成后,你可以运行node follow process.arch来确认node是在x64模式下运行的:

$ node
> process.arch
'x64'

【讨论】:

另请参阅此处的 M1 文档:github.com/nvm-sh/nvm#install--update-script【参考方案3】:

从节点 v16.x:

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

PS:node 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 的人来说,这是一个很好的解决方案。【参考方案4】:

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

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

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

【讨论】:

看起来他们在 v14 github.com/nodejs/build/issues/2474 好点上有一个未解决的问题。 问题似乎是节点 v14 和更早版本使用不为苹果芯片构建的 v8 版本,因此他们必须向后移植允许其构建的 v8 更改才能发布苹果硅的节点 12 或节点 14。有点烦人,但可以理解:-/【参考方案5】:

如果您尚未安装 rosseta2,请使用 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)"

现在点击这个命令来安装 nodejs 或者你想要的任何东西

arch -x86_64 brew install <package>

谢谢。

【讨论】:

【参考方案6】:

您可以使用n安装节点,请关注link。

n --arch arm64 16

【讨论】:

【参考方案7】:

要安装 Node 15.6.0 或更高版本:

    安装 nvm:

    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

您可以找到更多信息here

【讨论】:

【参考方案8】:

由于 Node v16 原生支持 Apple Silicon,brew install nodenvm install 16 可以在 Apple M1 笔记本电脑上运行。

这是我当前的构建。

$ nvm --version
0.39.0

$ node --version
v16.13.1

$ node -p "process.arch"
arm64

【讨论】:

以上是关于在 M1 Mac 上安装节点的主要内容,如果未能解决你的问题,请参考以下文章

在 Apple Silicon M1 Mac 上安装 Cryptography

无法在 M1 Mac 上安装 OpenCV Python

Pip install matplotlib 在 M1 Mac 上失败

一文搞定通过UTM 在MAC M1 上安装centos/ubuntu VM

如何在mac m1上安装oracle database express

在arm架构的mac上安装sql server(m1芯片 or m2芯片)