如何在 Apple Silicon M1 上原生安装 NodeJS?

Posted

技术标签:

【中文标题】如何在 Apple Silicon M1 上原生安装 NodeJS?【英文标题】:How to install NodeJS natively on Apple Silicon M1? 【发布时间】:2021-03-02 02:52:06 【问题描述】:

我正在尝试在新的 Apple Silicon MacBook Pro 上安装 NodeJS,但我无法找到将它安装在基于 ARM 的 Apple M1 上的方法。

标准安装将在 Intel 仿真模式下运行,但我看到他们已经有一个 ARM Linux 版本,我认为它不适合 M1 Macs。

如果可能,我如何在 Apple Silicon 上安装 Node.JS 而无需在仿真模式下运行?

【问题讨论】:

This question is discussed on meta @Lucki:我重新表述了你的问题,使它听起来不像是对场外资源的请求。如果您不喜欢该修改,请随时回滚。 此问答提供了配置 M1 Mac 以运行所有版本节点的重要信息。 【参考方案1】:

主要的 Node.JS 存储库有 Issue #2747,昨天通过 Rosetta 2 更新为 a note that current versions of Node compile just fine with no modifications required。同一篇文章表明仍有“工作要做”来将 Node 编译为 M1-本机二进制文件可释放额外的性能优势。


其他资源:

Node.JS 技术指导委员会开设了Issue #886 in their GitHub repository 以跟踪 Node 对 Apple Silicon 的支持。

【讨论】:

为了跟进这一点,我使用 NVM 通过下载 Intel 版本的 Hyper.js 并将其作为“Hyper Intel”复制到应用程序来安装 x86。然后我运行 nvm uninstall 12 (需要使用 Arm 版本)和 nvm install 12 并安装了 x86 版本。这现在运行 Rosetta 下的所有节点 12 应用程序,允许我升级到适合我自己时间的版本。【参考方案2】:

遇到类似的问题。我建议您在终端上启用“使用 Rosetta 打开”,这应该可以暂时减少所有的痛苦。启用此功能后,我可以毫无问题地安装 Node 以及 Homebrew 等。 要做的事情:

    在 Finder 中右键单击您的终端应用 选择“获取信息” 启用“使用 Rosetta 打开”

注意我在下面的屏幕截图中使用 iTerm,但同样适用于终端

【讨论】:

FWIW:iTerm 不是 Terminal.app。 没错,但很多人用它来代替终端,并这么想,因为当有人说在终端做某事时,他们会去 iTerm。 解决方案对我不起作用,无论如何我都会遇到同样的错误。

以上是关于如何在 Apple Silicon M1 上原生安装 NodeJS?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apple Silicon (ARM / M1) 上安装 SciPy

从命令行检测 Apple Silicon

在 Apple Silicon M1 Mac 上安装 Cryptography

解决在Apple Silicon (M1)安装php MongoDB扩展失败

在 M1 芯片上运行 rails 时出错(Apple Silicon)

如何修复 iOS 模拟器 [native-run] ERR_DEVICE_LOCKED:在 Apple Silicon (M1) 上 1 分钟后设备仍被锁定?