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

better-sqlite3与Node.js版本不兼容问题求助(Discord.js机器人)

Discord.js机器人运行时better-sqlite3版本不兼容错误

错误日志

/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/bindings/bindings.js:121
        throw e;
        ^

Error: The module '/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 93. This version of Node.js requires
NODE_MODULE_VERSION 108. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Module._extensions..node (node:internal/modules/cjs/loader:1203:18)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Module._load (node:internal/modules/cjs/loader:838:12)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at bindings (/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/bindings/bindings.js:112:48)
    at new Database (/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/better-sqlite3/lib/database.js:48:64)
    at Database (/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/better-sqlite3/lib/database.js:11:10)
    at new SqliteDriver (/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/quick.db/out/drivers/SqliteDriver.js:8:25)
    at new QuickDB (/Users/dhyan/Downloads/Dhyan99-bot-v14 (4)/node_modules/quick.db/out/index.js:17:28) {
  code: 'ERR_DLOPEN_FAILED'
}

Node.js v18.8.0

已尝试的操作

  • npm uninstall better-sqlite3
  • npm install better-sqlite3
  • 删除node_modules、package-lock.json和package.json后重新安装依赖
  • 切换Node.js版本:
    • 16.17.0(对应NODE_MODULE_VERSION 93)
    • 18.8.0(对应要求的NODE_MODULE_VERSION 108)
  • npm install --build-from-source

系统信息

Software:

    System Software Overview:

      System Version: macOS 12.3.1 (21E258)
      Kernel Version: Darwin 21.4.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: Dhyan’s MacBook Air
      User Name: Dhyan Tanna (dhyan)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 20 days 1:27

Hardware:

    Hardware Overview:

      Model Name: MacBook Air
      Model Identifier: MacBookAir10,1
      Chip: Apple M1
      Total Number of Cores: 8 (4 performance and 4 efficiency)
      Memory: 8 GB
      System Firmware Version: 7459.101.3
      OS Loader Version: 7459.101.3

针对性解决步骤

1. 安装Xcode命令行工具

确保编译环境完整:

xcode-select --install

如果提示已安装,直接跳过。

2. 彻底清理并指定ARM架构重新安装

先清理残留文件和缓存:

rm -rf node_modules package-lock.json
npm cache clean --force

然后针对M1的ARM架构编译安装better-sqlite3:

npm install better-sqlite3 --build-from-source --target_arch=arm64

3. 确认Node.js为ARM版本

如果使用nvm管理Node,卸载现有版本后重新安装ARM架构版本:

nvm uninstall 18.8.0
nvm install 18.8.0 --arch=arm64
npm install

4. 尝试Rosetta兼容模式

右键终端应用 → 显示简介 → 勾选「使用Rosetta打开」,重启终端后执行:

rm -rf node_modules package-lock.json
npm install

5. 升级quick.db

错误由quick.db调用better-sqlite3触发,尝试升级quick.db到最新版本:

npm install quick.db@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:45:41