You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M2芯片MacBook Air安装Node.js 14.17.3报错求解决方案

问题描述

我需要开发一个指定使用Node v14.17.3的项目,此前在Intel芯片的MacBook上,执行npm install node@14.17.3就能正常安装,项目的package.json已指定版本:

"engines": {
  "node": "v14.17.3"
},

但在M2芯片的MacBook Air上执行该命令时,出现如下错误:

command sh -c node installArchSpecificPackage
npm ERR! npm ERR! code ETARGET
npm ERR! npm ERR! notarget No matching version found for node-darwin-arm64@14.17.3.
npm ERR! npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! npm ERR! notarget a package version that doesn't exist.
npm ERR! 
npm ERR! npm ERR! A complete log of this run can be found in:
npm ERR! npm ERR!     /Users/enzo/.npm/_logs/2023-02-04T02_37_49_054Z-debug-0.log
npm ERR! node:internal/modules/cjs/loader:1050
npm ERR!   throw err;
npm ERR!   ^
npm ERR! 
npm ERR! Error: Cannot find module 'node-bin-darwin-arm64/package.json'
npm ERR! Require stack:
npm ERR! - /Users/enzo/Documents/Project/frontend/node_modules/node/installArchSpecificPackage.js
npm ERR!     at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)
npm ERR!     at Function.resolve (node:internal/modules/cjs/helpers:109:19)
npm ERR!     at ChildProcess.<anonymous> (/Users/enzo/Documents/TeCambio/frontend/node_modules/node-bin-setup/index.js:19:27)
npm ERR!     at ChildProcess.emit (node:events:513:28)
npm ERR!     at maybeClose (node:internal/child_process:1091:16)
npm ERR!     at ChildProcess._handle.onexit (node:internal/child_process:302:5) {
npm ERR!   code: 'MODULE_NOT_FOUND',
npm ERR!   requireStack: [
npm ERR!     '/Users/enzo/Documents/Project/frontend/node_modules/node/installArchSpecificPackage.js'
npm ERR!   ]
npm ERR! }
npm ERR! 
npm ERR! Node.js v18.14.0

请问除了安装Rosetta和NVM之外,还有什么解决方案或变通方法?

解决方案

以下是无需依赖Rosetta或NVM的几种解决思路:

  • 手动下载安装ARM64版本Node
    Node v14.17.3官方提供了darwin-arm64架构的安装包,直接下载对应版本的压缩包,解压后将node和npm可执行文件复制到/usr/local/bin(或其他已加入系统PATH的目录),执行node -v确认版本即可。

  • 使用Volta管理Node版本
    Volta是轻量的Node版本管理工具,原生支持ARM架构:

    1. 安装Volta:curl https://get.volta.sh | bash
    2. 安装指定Node版本:volta install node@14.17.3
    3. 为项目锁定版本:在项目根目录执行volta pin node@14.17.3,后续进入项目会自动切换到该版本。
  • 强制npm安装x64架构的node包
    通过指定npm的架构参数,强制安装x64版本的node包,让M2芯片以兼容模式运行:
    执行命令:npm install node@14.17.3 --arch=x64
    注意:此方式依赖系统兼容层,性能可能略有下降,但无需额外安装Rosetta。

  • 调整项目版本管理方式
    避免在项目依赖中直接安装node包,改为全局管理Node版本:

    1. 先全局安装好Node v14.17.3
    2. 执行npm config set engine-strict true,让npm严格检查当前Node版本是否符合package.json中engines字段的要求,不符合则终止操作。

内容的提问来源于stack exchange,提问作者Enzo Barrera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:50:32