返回介绍

安装 SQLite

发布于 2024-09-11 01:11:55 字数 1802 浏览 0 评论 0 收藏 0

npm install better-sqlite3 -D

这个模块安装完成后,大概率是无法使用这个模块的,可能会碰到如下报错信息:

Error: The module '...node_modules\better-sqlite3\build\Release\better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION $XYZ. This version of Node.js requires
NODE_MODULE_VERSION $ABC. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).

这是因为 Electron 内置的 Node.js 的版本可能与你编译原生模块使用的 Node.js 的版本不同导致的。

建议开发者使用 Electron 团队提供的 electron-rebuild 工具来完成此工作,因为 electron-rebuild 会确定 Electron 的版本号、Electron 内置的 Node.js 的版本号、以及 Node.js 使用的 ABI 的版本号,并根据这些版本号下载不同的头文件和类库。

安装 electron-rebuild:

npm install electron-rebuild -D

在 package.json 中增加如下配置节(scripts 配置节):

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

在工程根目录下执行如下指令:

npm run rebuild

当你的工程下出现了这个文件 node_modules/better-sqlite3/build/Release/better_sqlite3.node,才证明 better_sqlite3 模块编译成功了,如果上述指令没有帮你完成这项工作,你可以把指令配置到 node_modules/better-sqlite3 模块内部再执行一次,一般就可以编译成功了(如下图所示)。

这样就为 Electron 重新编译了一遍 better-sqlite3,现在就可以在 Electron 应用内使用 better-sqlite3 提供的 API 了。

在应用中试试如下代码(渲染进程和主进程均可,甚至在渲染进程的开发者调试工具中也没问题),看是不是可以正确创建 SQLite 的数据库。

const Database = require("better-sqlite3");
const db = new Database("db.db", { verbose: console.log, nativeBinding: "./node_modules/better-sqlite3/build/Release/better_sqlite3.node" });

不出意外的话,工程根目录下将会创建一个名为 db.db 的 SQLite 数据库文件,说明 better-sqlite3 库已经生效了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文