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

Mac M1升级Node14.17.6后编译better_sqlite3报v8::ArrayBuffer无GetContents错误

报错原因

该错误是低版本nan(Node.js原生抽象库)的兼容性问题:旧版nan调用的v8::ArrayBuffer::GetContents接口在Node 14.17.6内置的V8版本中已被废弃移除,编译原生模块时会触发语法错误。

解决方案

方案1:升级核心依赖(优先推荐)

  • 升级better-sqlite3到7.5.0及以上版本,该版本已修复高版本Node/V8的适配问题
  • 升级electron-builder到22.14.0及以上版本,原生适配M1芯片编译逻辑,同时兼容更高版本的原生依赖

升级完成后清空缓存重新安装编译即可:

rm -rf node_modules package-lock.json yarn.lock
npm install
# 执行你的electron原生模块重编译命令,比如:
electron-builder install-app-deps

方案2:强制锁定nan版本(不改动核心依赖时使用)

如果业务场景不允许升级better-sqlite3和electron-builder,可以强制指定依赖树中nan的版本为2.15.0及以上(该版本已替换废弃接口):

  • npm用户在package.json中新增配置:
"overrides": {
  "nan": "^2.15.0"
}
  • yarn用户在package.json中新增配置:
"resolutions": {
  "nan": "^2.15.0"
}

配置完成后重新安装依赖、重编译原生模块即可。

方案3:M1架构专项适配

如果以上方案都不生效,可强制指定x64架构编译,通过Rosetta2转译兼容旧版原生逻辑:

npm_config_arch=x64 electron-builder install-app-deps

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:57:03