亲测有效!M4芯片Mac安装Node.js 14避坑指南,解决nvm install失败问题
摘要: 在M4芯片MacBook Pro上运行依赖Node.js 14的老项目时,由于ARM架构与x86_64预编译包不兼容导致安装失败。解决方案是使用Rosetta 2转译:先安装Rosetta,再通过arch -x86_64 zsh命令在x86终端中安装nvm和Node.js 14。运行项目时需在Rosetta终端切换node版本,最终成功兼容旧项目。该方法有效解决了新硬件与旧软件间的架构冲突
·
问题概述:当现代硬件遇见旧版软件
刚从Windows切换到全新的MacBook Pro(M4芯片),准备投入到熟悉的老项目维护中,一切似乎都很顺利——直到我需要运行那个依赖Node.js 14的项目。
在终端中输入 nvm install 14 后,等待我的不是成功的提示,而是一连串令人困惑的错误信息:![[图片]](https://i-blog.csdnimg.cn/direct/fa529ffa50824f8aa93eaecc892c1680.png)
为什么安装会失败?
- 架构差异的本质
- Node.js 14官方预编译包主要针对x86_64架构
- M4芯片的ARM架构需要对应的ARM原生二进制文件
- 缺乏官方维护的低版本ARM原生包
2.依赖链断裂问题
- 部分Node.js 14依赖的本地模块(native addons)无ARM版本
- npm包中的postinstall脚本可能包含不兼容的命令
解决方案:通过Rosetta 2架起兼容的桥梁
经过多次尝试,Rosetta 2转译方案被证明是最稳定可靠的方法。以下是详细步骤:
# 1. 安装 Rosetta 2(如果还没有)
softwareupdate --install-rosetta
# 2. 在 Rosetta 2 终端中运行
arch -x86_64 zsh
# 3. 在这个终端中安装 nvm(如果需要)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 4. 安装 Node.js v14
nvm install v14.21.3
安装后,每次运行 Node v14 的项目时,需要在 Rosetta 终端中:
arch -x86_64 zsh
nvm use v14
效果图
正常下载并切换 node 14版本,安装 node_modules![[图片]](https://i-blog.csdnimg.cn/direct/337afd81cab949f29477fcfa631efdea.png)
项目正常运行![[图片]](https://i-blog.csdnimg.cn/direct/06ae187c7244461cbeb65dc6211270cc.png)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)