解决m1芯片Mac安装node失败问题

2023-10-27

用nvm安装node时终端报错: 

.type aesni_cbc_sha256_enc_avx2,@function
^
../deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s:2439:8: error: invalid alignment value
.align 64
       ^
../deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s:4080:1: error: unknown directive
.size aesni_cbc_sha256_enc_avx2,.-aesni_cbc_sha256_enc_avx2
^
../deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s:4081:1: error: unknown directive
.type aesni_cbc_sha256_enc_shaext,@function
^
../deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s:4082:8: error: invalid alignment value
.align 32
       ^
../deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s:4435:1: error: unknown directive
.size aesni_cbc_sha256_enc_shaext,.-aesni_cbc_sha256_enc_shaext
^
make[1]: *** [/Users/admin/.nvm/.cache/src/node-v10.24.1/files/out/Release/obj.target/openssl/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.o] Error 1
rm a151194e89fcf3752f3d05351e9f891bee165204.intermediate
make: *** [node] Error 2
nvm: install v10.24.1 failed!

或者安装npm包时终端报错:

<--- Last few GCs --->

[57807:0x128008000]       54 ms: Scavenge 11.1 (14.0) -> 10.5 (14.8) MB, 0.4 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure
[57807:0x128008000]       58 ms: Scavenge 11.7 (15.0) -> 11.1 (15.8) MB, 0.3 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure
[57807:0x128008000]       66 ms: Scavenge 13.4 (16.4) -> 12.8 (21.9) MB, 0.7 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure


<--- JS stacktrace --->

FATAL ERROR: wasm code commit Allocation failed - process out of memory
 1: 0x102290c38 node::Abort() [/opt/homebrew/bin/node]
 2: 0x102290db8 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string<std::nullptr_t>(char const*) [/opt/homebrew/bin/node]
 3: 0x102396c14 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/opt/homebrew/bin/node]
 4: 0x102396ba8 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/opt/homebrew/bin/node]
 5: 0x1027c4fa4 v8::internal::wasm::WasmCodeAllocator::AllocateForCodeInRegion(v8::internal::wasm::NativeModule*, unsigned long, v8::base::AddressRegion) [/opt/homebrew/bin/node]
 6: 0x1027c5c1c v8::internal::wasm::NativeModule::CreateEmptyJumpTableInRegion(unsigned int, v8::base::AddressRegion) [/opt/homebrew/bin/node]
 7: 0x1027c51e8 v8::internal::wasm::NativeModule::AddCodeSpace(v8::base::AddressRegion) [/opt/homebrew/bin/node]
 8: 0x1027c5a64 v8::internal::wasm::NativeModule::NativeModule(v8::internal::wasm::WasmEngine*, v8::internal::wasm::WasmFeatures const&, bool, v8::internal::VirtualMemory, std::__1::shared_ptr<v8::internal::wasm::WasmModule const>, std::__1::shared_ptr<v8::internal::Counters>, std::__1::shared_ptr<v8::internal::wasm::NativeModule>*) [/opt/homebrew/bin/node]
 9: 0x1027c7944 v8::internal::wasm::WasmCodeManager::NewNativeModule(v8::internal::wasm::WasmEngine*, v8::internal::Isolate*, v8::internal::wasm::WasmFeatures const&, unsigned long, bool, std::__1::shared_ptr<v8::internal::wasm::WasmModule const>) [/opt/homebrew/bin/node]
10: 0x1027cdc70 v8::internal::wasm::WasmEngine::NewNativeModule(v8::internal::Isolate*, v8::internal::wasm::WasmFeatures const&, unsigned long, bool, std::__1::shared_ptr<v8::internal::wasm::WasmModule const>) [/opt/homebrew/bin/node]
11: 0x1027cdbb8 v8::internal::wasm::WasmEngine::NewNativeModule(v8::internal::Isolate*, v8::internal::wasm::WasmFeatures const&, std::__1::shared_ptr<v8::internal::wasm::WasmModule const>) [/opt/homebrew/bin/node]
12: 0x1027ac3a8 v8::internal::wasm::AsyncCompileJob::CreateNativeModule(std::__1::shared_ptr<v8::internal::wasm::WasmModule const>) [/opt/homebrew/bin/node]
13: 0x1027b3860 v8::internal::wasm::AsyncCompileJob::PrepareAndStartCompile::RunInForeground(v8::internal::wasm::AsyncCompileJob*) [/opt/homebrew/bin/node]
14: 0x1027b4004 v8::internal::wasm::AsyncCompileJob::CompileStep::Run(v8::internal::wasm::AsyncCompileJob*, bool) [/opt/homebrew/bin/node]
15: 0x1027b3f14 v8::internal::wasm::AsyncCompileJob::CompileTask::RunInternal() [/opt/homebrew/bin/node]
16: 0x1022e66cc node::PerIsolatePlatformData::RunForegroundTask(std::__1::unique_ptr<v8::Task, std::__1::default_delete<v8::Task> >) [/opt/homebrew/bin/node]
17: 0x1022e58f4 node::PerIsolatePlatformData::FlushForegroundTasksInternal() [/opt/homebrew/bin/node]
18: 0x1028da454 uv__async_io [/opt/homebrew/bin/node]
19: 0x1028e9fdc uv__io_poll [/opt/homebrew/bin/node]
20: 0x1028da874 uv_run [/opt/homebrew/bin/node]
21: 0x1022c6aa0 node::NodeMainInstance::Run() [/opt/homebrew/bin/node]
22: 0x10226d8c0 node::Start(int, char**) [/opt/homebrew/bin/node]
23: 0x18a195450 start [/usr/lib/system/libdyld.dylib]
[1]    57806 abort      npm run dev

原因:

Node 在新款的 Mac 的 M1 macOS 系统运行的不是很好。就比如有些脚本在建立在 arm64 上的 Node 时会崩溃。

可以执行以下代码检查电脑上的 node 是不是运行在 arm64 上:

$ node

Welcome to Node.js v12.21.0.
Type ".help" for more information.
>
> process.arch
'arm64'

目前已经修复的Node版本:v15 及以上版本。

解决办法:

办法1:在 Rosetta 2 模式下用 nvm 安装 node

在 nvm github 官方库里的一个 issue 里有很好的解答:

 回答中写道:这种方式是只在需要的时候使用 Rosetta 模式,而不需要整个终端进入 Rosetta 模式。

什么是 Rosetta 2 模式?

简单来说,其实就是M1芯片在过渡期间苹果给出的对应 X86芯片的兼容性方案。

在终端输入 arch -x86_64 zsh 回车进入Rosetta 2模式,然后就可以用 nvm install 安装 node 了(安装之前要把之前安装在 arm64 上的 node 版本卸载了。)。

每次用 nvm 安装 node 新版本前都需要先进入 Rosetta 2 模式。

$ nvm uninstall 14
$ arch -x86_64 zsh 
$ nvm install 14

删除项目中原来的 node_modules,重新 npm i。

办法2: 升级node版本到已修复的版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决m1芯片Mac安装node失败问题 的相关文章

  • npm指令执行前执行自定义代码

    1 基本逻辑 npm start执行前执行node bin wb handle scripts wb node bin wb handle npm start wb handle源码 删除deleteNodeModules配置的最后一级目录
  • node连接mysql实现带分页列表多条件模糊查询效果-新手教程

    前言 使用node连接mysql 这里是模糊查询方法完整流程 第一 安装我们的express脚手架 入口 第二 在根目录下创建model文件夹 里面放两个文件 1 mysql config js 这里放的是我们的数据库配置 配置链接数据库参
  • 【Mac 教程系列第 18 篇】如何修改 iTerm2 的背景图片

    这是 Mac 教程系列第 18 篇 如果觉得有用的话 欢迎关注专栏 默认终端的效果图是这样的 修改后的效果如下图所示 如果你已经习惯了默认终端的样式 前期看有背景图片的可能会不太适应 不过有时候尝试一下不同的风格 也许会有不同的体验 如何实
  • Adobe Bridge 2024:解锁创意力的数字媒体利器

    在当今数字化的时代 创意工作者们需要处理和管理大量的数字媒体资源 如照片 视频 音频等 为了提高工作效率和创作质量 他们需要一个功能强大 易于使用的工具来组织 浏览和共享这些媒体文件 幸运的是 Adobe Bridge 2024 正好满足了
  • Mac之zip unzip 命令(压缩)

    https blog csdn net yxys01 article details 73848720 最通俗的用法 zip q r e m o myfile zip someThing 1 q 表示不显示压缩进度状态 r 表示子目录子文件
  • 执行pod setup 报错error: RPC failed; curl 18 transfer closed with outstanding read data remainin

    执行pod setup 报错 error RPC failed curl 18 transfer closed with outstanding read data remaining fatal the remote end hung u
  • jsoup的Elements类

    随时随地阅读更多技术实战干货 获取项目源码 学习资料 请关注源代码社区公众号 ydmsq666 一 简介 该类是位于select包下 直接继承自Object 所有实现的接口有Cloneable Iterable
  • Mac os Ventura 关闭 accent方言,长按不能连续输入问题

    Mac os Ventura 关闭 accent方言 长按不能连续输入问题 在之前的osx版本遇到长按开启方言输入 无法连续输入问题时 defaults write g ApplePressAndHoldEnabled bool false
  • mac charles4.0.2免费破解版安装

    mac charles4 0 2免费破解版安装 按相关步骤即可成功安装并使用 1 下载安装charles https www jianshu com p 4f0573f3c5db 2 安装成功之后相关配置 https www jianshu
  • S50(Mifare 1K)卡简介及存储控制原理

    一 主要指标以及存储结构 1 S50卡共有16个扇区 每个扇区分为4块 每块16个字节 块0 块1 块2为数据块 块3为控制块 按绝对地址编号为0 63 存储结构如图一所示 图一 S50卡存储结构 2 第0扇区的块0 即绝对地址0 用于存放
  • MongoDB的安装与基本使用

    首先 得从MongoDB官网下载到对应操作系统的数据库安装包 MongoDB官网 https www mongodb com MongoDB下载地址 https www mongodb com download center communi
  • 【node】12、Koa实现简单爬虫案例

    效果图如下 首先我们新建文件夹 进入终端 初始化node项目 npm init y 安装koa搭建服务模块 npm install koa 安装superagent发送请求模块 npm install superagent 安装cheeri
  • mac用终端登陆PostgreSQL时出现-bash: psql: command not found

    系统无psql命令 此时要将postgresql 的 bin 目录添加到环境变量中 注意你的postgresql在哪 还有它的版本 推荐前往 Applications和 Library确认 export PATH Library Postg
  • 如何在 Windows 10 上安装 Node.js

    Node js 是一个开源的 JavaScript 运行时环境 它允许在 Web 浏览器之外运行 JavaScript 本教程将帮助您在 Windows 系统上安装 Node js 在 Windows 上安装节点 以下是在 Windows
  • mac m1 安装 protobuf

    mac m1各种踩坑中 一 背景 mac m1 机器上使用golang grpc 二 安装流程 1 安装protobuf 注 已经安装了brew brew install protobuf 2 安装go的支持 go install goog
  • VMware Fusion(虚拟机)免费下载正版授权(Mac升级到Big Sur后旧版VM显示物理内存不足)

    下载教程可以参考本博客 安装Linux系统教程可查询本人此博客 描述 MacbookPro在升级到macOS Big Sur后 无法打开VM虚拟机 打开时显示物理内存不足 如下图 所以在VM官网下载最新版VM虚拟机 12 1 1 个人免费正
  • macOS命令行终端隐藏主机名和用户名

    首先要区分自己的终端用的是Bash Shell还是Zsh Shell 网上很多教程都是Bash的 所以如果你用的是Zsh 那按照Bash的步骤来设置是不会有效果的 从2019年起 macOS的默认Shell由Bash改为Zsh 查看当前使用
  • 使用brew services管理服务

    原文 https www jianshu com p 6c3b26490861 简介 官网 https github com Homebrew homebrew services macOS使用launchctl命令加载开机自动运行的服务
  • 探索创意无限的Photoshop CC 2020Mac/Win版

    作为一款功能强大的图像处理软件 Photoshop CC 2020 简称PS 2020 在全球范围内备受设计师 摄影师和艺术家的喜爱和推崇 它不仅为用户提供了丰富多样的工具和功能 还不断推出新的创意特效和改进的功能 让用户的创意无限延展 首
  • GraphPad Prism 9:最强大的数据分析软件,助您轻松解析复杂数据!

    您是否正在寻找一个功能强大 易于使用的数据分析软件 GraphPad Prism 9是您的最佳选择 作为全球领先的科学数据分析工具 Prism 9提供了广泛的功能和先进的统计分析方法 帮助您轻松解析和可视化复杂的数据 Prism 9不仅具备

随机推荐

  • 字符串转换成整数

    题目描述 输入一个由数字组成的字符串 把它转换成整数并输出 例如 输入字符串 123 输出整数123 给定函数原型int StrToInt const char str 实现字符串转换成整数的功能 不能使用库函数atoi 分析与解法 本题考
  • 问题:WPS文字提示应用程序已存在该快捷键,请另设快捷键

    1 问题描述 WPS文字 对某一字体样式自定义快捷键 结果提示已存在 如何如何查看已设定快捷键 只针对软件内部冲突 不考虑外部软件影响 我遇到过以下两种情况 1 与自己之前定义的冲突 2 与模板文件冲突 这个不太确定 对于模板冲突 自定义样
  • sqlite的下载安装和配置使用(非常详细)

    sqlite下载链接 Sqlite下载官网 1 这个压缩包中有头文件sqlite3 h以及源码 主要是用到头文件 2 看电脑配置的操作系统或者看所需项目是64位还是32位下载对应的压缩包 3 解压得到这两个文件 sqlite3 def文件用
  • TCP三次握手原理,以及为什么不能改成两次握手

    网上 关于 TCP三次握手 的文章有很多 但很多一些部分讲的含糊其辞 所以才重新造了这个轮子 一方面对那些含糊其辞的部分做了解释 另一方面也方便了以后的学习 1 上图的名词解释 SYN 同步序号 它表示建立连接 TCP规定SYN 1时不能携
  • uniapp如何渲染html模板,uni-app 页面样式

    页面样式与布局 尺寸单位 uni app 支持的通用 css 单位包括 px rpxpx 即屏幕像素 rpx 即响应式px 一种根据屏幕宽度自适应的动态单位 以750宽的屏幕为基准 750rpx恰好为屏幕宽度 屏幕变宽 rpx 实际显示效果
  • B站视频下载(含bv快速变回av)

    下载解压JJDown的软件 打开如下应用程序 JiJiDownForWPF打开首页 原本B站中的每个视频有对应的av号但从2020 3起全都变为bv号 所以如何从bv号中查看av号 谷歌浏览器中打开要下载的B站视频 按F12 开发者工具 选
  • Python#Typora-Python笔记

    01 源码安装Python3 一 源码安装 安装依赖软件包 root qfedu com yum groupinstall Development Tools root qfedu com yum y install zlib devel
  • 日语动词的13种变形

    五段动词 一类动词 辞书形 形 形 形 形 意志形 可能形 行 行 行 行 行 行 行 書 書 書 書 書 書 書 買 買 買 買 買 買 買 假定形 被动形 使役形 命令形 禁止形 被役形 行 行 行 行 行 行 書 書 書 書 書 書
  • 【linux】内核组件 [不断补充中...]

    防火墙 netfilter iptables IP 信息包过滤系统 netfilter 内核空间 kernelspace 是内核的一部分 由一些信息包过滤表组成 这些表包含内核用来控制信息包过滤处理的规则集 即 存放内核过滤规则的防火墙 i
  • GridView 使用方法详解

    GridView 跟ListView 很类似 Listview 主要以列表形式显示数据 GridView 则是以网格形式显示数据 掌握ListView 使用方法后 会很轻松的掌握GridView的使用方法 欢迎关注微信公众号 程序员Andr
  • DBeaver导入csv数据到Oracle

    时隔许久 我又回来写博客啦 前段时间太忙了 绝对不是因为懒才没有写的 大实话 今天用到csv存库的问题 踩了点坑 做个笔记 废话不多说我们开始 第一步 打开DBeaver 右键点击要导入数据的表 选择 导入数据 第二步 点击csv 下一步
  • 反射 动态代理 线程池

    反射 动态代理 线程池 反射 动态获取类的字节码文件 并对其进行抽象 通过反射可以获取一个类的全部方法和属性 然后进行调用 反射与类之间抽象的理解 Class 将字节码对象进行抽象 出现了 1 属性 表示字节码文件的属性的属性 privat
  • PDF阅读时如何返回到跳转之前的位置

    方法 同时按下Alt 左箭头
  • 中国航天科技集团公司的各个研究院

    1 航天一院 中国运载火箭技术研究院 导弹运载火箭总体设计生产总装 2 航天四院 航天动力技术研究院 航天固体燃料发动机研制生产实验 3 航天五院 中国空间技术研究院 卫星 飞船 空间站 探月器等航天器研制生产 4 航天六院 航天推进技术研
  • el+vue 实战 ⑧ el-calendar日历组件设置点击事件、el-calendar日历组件设置高度、el-calendar日历组件自定义日历内部内容

    一 效果图 日历显示内容变为01 02的形式 点击相应的日期后 有一个弹出框显示当天完成的一些内容 二 前端代码设置
  • 切换到WSL2.0后无法连接到x-server Unable to init server: Could not connect: Connection refused无法显示窗口

    之前通过安装vcxsrv 64 1 20 9 0 installer exe 启动x launch服务器后 无法通过bash打开显示窗口 错误 Unable to init server Could not connect Connecti
  • 【Javascript】数据结构与算法-快速排序第一趟结果

    Javascript 数据结构与算法 快速排序第一趟结果 整体思想 案例一 案例二 快速排序代码实现 js 复杂度分析 整体思想 将待排序数组A以某一元素为基准划分为两个子数组left和right 如果基准元素为pivot那么left中的元
  • 山路 (ghat)--(最短路-最小生成树//超级原点)

    感谢光神送来rating38000分的思路 题目描述 会和神奈子一起改变地形 开凿地下洞穴等 虽说是一起 不过看起来改变土地是诹访子的工作 与其说她是直接将大地整平 不如说这是她麾下的崇神的功劳 求闻口授 山路交错相同 令人烦躁 于是诹访子
  • MWeb发布笔记到印象笔记,提示“Content of submitted note was malformed”

    文章目录 issue solution 参考 issue MWeb发布笔记到印象笔记 提示 Error Domain com evernote sdk Code 11 Content of submitted note was malfor
  • 解决m1芯片Mac安装node失败问题

    用nvm安装node时终端报错 type aesni cbc sha256 enc avx2 function deps openssl config archs linux x86 64 asm avx2 crypto aes aesni