如何在 M2 芯片 Apple Macbook Air 上安装 Node 14?

问题描述 投票:0回答:3

我需要开发一个使用 Node v14.17.3 的项目。在我之前配备英特尔芯片的 Macbook 中,我使用的是节点 16,但在这个特定项目中,我运行了

npm install [email protected]
,一切正常。

该项目具有 package.json 文件中指定的版本:

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

当我尝试使用我的 M2 芯片 Macbook 在项目上安装节点 14 时,出现以下错误:

 command sh -c node installArchSpecificPackage
npm ERR! npm ERR! code ETARGET
npm ERR! npm ERR! notarget No matching version found for [email protected].
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

此问题有任何解决方案/解决方法吗?我正在考虑安装 Rosseta 和 NVM,但我宁愿用一些更好的解决方案来做到这一点。预先感谢!

node.js nvm apple-silicon
3个回答
1
投票

批准的答案对我不起作用。我不得不将

arch
切换为
x86

arch -x86_64 zsh
nvm install 14
nvm us 14

这对我有用。


0
投票

适用于M2芯片

需要澄清的是,安装 Node.js 时,它会尝试下载 darwin arm64 版本,该版本仅从 Node.js 16 开始可用。如果您使用的是 M1/M2 Mac,则需要使用 Rosetta shell 来安装早于 16 的 Node.js 版本。

以下是如何使用 Rosetta 启动终端:

  1. 导航至 Finder 中的“应用程序”文件夹。
  2. 使用“搜索”图标查找并输入“终端”。
  3. 右键单击出现的终端图标,然后选择“获取信息”。
  4. 在“获取信息”窗口中,勾选标有“使用 Rosetta 打开”的框。
  5. 关闭所有当前打开的终端窗口并退出应用程序。然后,重新打开终端。
  6. 按照这些步骤操作后,您应该能够使用 NVM 安装早于 16 的 Node 版本,并且安装应该成功。

重新打开终端(Rosetta)后,此命令应该可以工作。

nvm install 14.21.3

了解更多信息:https://github.com/nvm-sh/nvm/issues/2944


-1
投票

我可以让它发挥作用:

对于配备 M1 和 M2 芯片的 Apple 计算机,您必须使用 nvm。

  1. 安装nvm
  2. 安装节点版本14.17.3
  3. 在您正在处理的项目的根级别创建 .nvmrc 文件夹
  4. 奔跑
    nvm use
  5. 运行
    npm install
    安装项目依赖项

就是这样...您可以在 M1 或 M2 Mac 上使用任何 Node 版本。

PD:我认为你需要安装 Rosetta 才能在新的 Mac 上安装 NVM。您只需运行即可安装它:

usr/sbin/softwareupdate –install-rosetta –agree-to-license

希望有帮助! 🙌🏻

© www.soinside.com 2019 - 2024. All rights reserved.