问题概述:当现代硬件遇见旧版软件

刚从Windows切换到全新的MacBook Pro(M4芯片),准备投入到熟悉的老项目维护中,一切似乎都很顺利——直到我需要运行那个依赖Node.js 14的项目。
在终端中输入 nvm install 14 后,等待我的不是成功的提示,而是一连串令人困惑的错误信息:[图片]

为什么安装会失败?

  1. 架构差异的本质
  • 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
[图片]

项目正常运行
[图片]

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐