Electron 安装 better-sqlite3 报错解决

better-sqlite3是基于Node.js的SQLite3最快最简单的库。它提供全事务支持、高性能、效率和安全性以及易于使用的同步API。
GitHub - WiseLibs/better-sqlite3: The fastest and simplest library for SQLite3 in Node.js.

使用以下命令安装:

npm install better-sqlite3 -D

当安装完之后,运行的时候会报如下错误:

de:electron/js2c/asar_bundle:2 Uncaught Error: The module '../node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 108. This version of Node.js requires
NODE_MODULE_VERSION 114. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
    at Module._extensions..node (node:internal/modules/cjs/loader:1326:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1822)
    at Module.load (node:internal/modules/cjs/loader:1096:32)
    at Module._load (node:internal/modules/cjs/loader:937:12)
    at f._load (node:electron/js2c/asar_bundle:2:13330)
    at o._load (node:electron/js2c/renderer_init:2:3109)
    at Module.require (node:internal/modules/cjs/loader:1120:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at new Database (../node_modules/better-sqlite3/lib/database.js:50:11)

这个错误是因为 Electron 内置的 Node.js 版本和编译到better-sqlite3的 Node.js 版本不同导致的。

如何解决

安装electron-rebuild, 可以全局安装

npm install electron-rebuild -g

也可以在../node_modules/better-sqlite3 目录下,局部安装

npm install electron-rebuild -D

better-sqlite3package.json中,添加如下scripts配置

"rebuild": "electron-rebuild -f -w better-sqlite3"

接着运行npm run rebuild ,最后出现如下日志,则表示安装成功。
CleanShot 2023-05-16 at 21.55.20@2x.png

build 的过程中,如果遇到问题,可以将 node 切换到较新的版本。


已发布

分类

作者:

标签

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注