1.npm install --save sqlite3@5.0.1
安装后出现提示npm WARN deprecated node-pre-gyp@0.11.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the
@mapbox scoped package will recieve updates in the future
2.npm install @mapbox/node-pre-gyp
3.cd 到node_module/sqlite3 下
4.node-pre-gyp install --fallback-to-build
5.node-pre-gyp rebuild (此处rebuild前没有–,具体看–node-pre-gyp --help)
rebuild之后会在\node_modules\sqlite3\lib\binding目录下有 napi-v3-win32-x64 和 napi-v6-win32-x64两个文件夹
6.此时在主进程中填写测试代码
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database(':memory:');
db.serialize(() => {
db.run("CREATE TABLE lorem (info TEXT)");
const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (let i = 0; i < 10; i++) {
stmt.run("Ipsum " + i);
}
stmt.finalize();
db.each("SELECT rowid AS id, info FROM lorem", (err, row) => {
console.log(row.id + ": " + row.info);
});
});
db.close();
期间遇到问题
1.安装最新版本5.0.11时 找不到electron-v6.1模块路径,根据网上的方法, 利用该命令添加
–node-gyp rebuild --target=16.9.1 --arch=x64 --target_platform=win32 --dist-url=https://npm.taobao.org/mirrors/electron/ --module_name=node_sqlite3 --module_path=…/lib/binding/electron-v6.1.12-win32-x64
但又找不到
error: cannot find module 'f:\arui\server\ecg-app\node_modules\sqlite3\lib\binding\napi-v3-win32-unknow-
因为在 node_modules\sqlite3\lib\binding\ 下只有一个napi-v6-win32-x64文件包
原因在于我是用node-gyp 命令构建的 而应该要用官网说的 node-pre-gyp rebuild去构建
2.出现node-pre-gyp info this node instance does not support builds for node-api version 6 这个提示好像是原作者没有去掉.