better-sqlite3 - 针对不同的 Node.js 编译 - Discord.js 机器人

D99*_*D99 5 node.js npm node-modules better-sqlite3 quick.db

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

我知道已经有很多关于此的问题,但似乎没有一个解决方案对我有用。

\n

我尝试过的:

\n
    \n
  • npm uninstall better-sqlite3
  • \n
  • npm install better-sqlite3
  • \n
  • 每次我尝试运行代码时都会出现错误
  • \n
  • 删除node_modules,package-lock.jsonpackage.json
  • \n
  • 不同的节点版本\n
      \n
    • 16.17.0 - 如NODE_MODULE_VERSION 93错误日志中所示
    • \n
    • 18.8.0 - 这是NODE_MODULE_VERSION 108“必需”的版本
    • \n
    \n
  • \n
  • npm install --build-from-source
  • \n
\n

对此问题的任何帮助将不胜感激,如果您需要任何进一步的详细信息,请告诉我,\n谢谢

\n

编辑: \n我正在测试的系统是

\n
Software:\n\n    System Software Overview:\n\n      System Version: macOS 12.3.1 (21E258)\n      Kernel Version: Darwin 21.4.0\n      Boot Volume: Macintosh HD\n      Boot Mode: Normal\n      Computer Name: Dhyan\xe2\x80\x99s MacBook Air\n      User Name: Dhyan Tanna (dhyan)\n      Secure Virtual Memory: Enabled\n      System Integrity Protection: Enabled\n      Time since boot: 20 days 1:27\n\nHardware:\n\n    Hardware Overview:\n\n      Model Name: MacBook Air\n      Model Identifier: MacBookAir10,1\n      Chip: Apple M1\n      Total Number of Cores: 8 (4 performance and 4 efficiency)\n      Memory: 8 GB\n      System Firmware Version: 7459.101.3\n      OS Loader Version: 7459.101.3\n
Run Code Online (Sandbox Code Playgroud)\n

小智 1

在 package.json 中添加以下内容

"scripts": {
    "rebuild": "electron-rebuild -f -w better-sqlite3",
    "postinstall": "electron-builder install-app-deps"
}
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令:

npm run rebuild
npm install
Run Code Online (Sandbox Code Playgroud)