Electron 应用程序找不到 sqlite3 模块

问题描述 投票:0回答:7

在我的电子应用程序中,我通过 npm 安装了 sqlite3

npm install sqlite3

但是一旦我尝试与数据库交互,它就找不到数据库,这是日志:

未捕获错误:找不到模块 'D:\play lectron-quick-start ode_modules\sqlite3\lib 查找 lectron-v1.3-win32-x64 ode_sqlite3.node'

这是JS代码:

console.log('whooooo');

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('../db/info.db');

db.serialize(function () {
    db.run("CREATE TABLE lorem (info TEXT)");   

    var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
    for (var i = 0; i < 10; i++) {
        stmt.run("Ipsum " + i);
    }
    stmt.finalize();

    db.each("SELECT rowid AS id, info FROM lorem", function (err, row) {
        console.log(row.id + ": " + row.info);
    });
});
db.close();

我也尝试这样的方式:

npm install sqlite3 --build-from-source

但是安装失败!

另外,我正在使用Python3。如何安装模块来与 Electron 一起使用?

node.js sqlite npm electron
7个回答
38
投票

首先:

npm install electron-rebuild

然后尝试几次:

./node_modules/.bin/electron-rebuild -w sqlite3 -p


9
投票

您必须使用基于 Electron 的配置来构建此本机模块。

尝试:
1.

cd node_modules/sqlite3

2.
npm run prepublish

3.
node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.3-win32-x64

4.
node-gyp rebuild --target=1.3.1 --arch=x64 --target_platform=win32 --dist-url=https://atom.io/download/atom-shell --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.3-win32-x64

这是假设您拥有最新版本的电子。您可以更改配置以匹配您的电子版本。


8
投票

如果这些都不起作用,请尝试这个。

npm install electron-builder

将其添加到 package.json 文件的脚本标记中

 "postinstall": "electron-builder install-app-deps"

然后执行这个

npm run postinstall 

这节省了我很多时间


3
投票

1:在 Package.json 文件中包含重建并安装 npm electro-rebuild

{
  "name": "electron-quick-start",
  "version": "1.0.0",
  "description": "A minimal Electron application",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "rebuild": "electron-rebuild -f -w sqlite3"
  },
  "repository": "https://github.com/electron/electron-quick-start",
  "keywords": [
    "Electron",
    "quick",
    "start",
    "tutorial",
    "demo"
  ],
  "author": "author",
  "license": "CC0-1.0",
  "devDependencies": {
    "@types/file-saver": "0.0.1",
    "electron": "1.7",
    "electron-rebuild": "^1.6.0"
  },
  "dependencies": {
    "sqlite3": "^3.1.13"
  }
}

2:安装python 2.7并将其路径添加到环境变量中,例如C:\Python27;

3:npm INSTALL 然后 npm 运行重建


2
投票

您刚刚安装了

sqlite3
模块,但需要重建它才能在特定平台上运行。您需要
electron-rebuild
包来重建二进制文件。

从项目目录运行命令

npm i --save-dev electron-rebuild
。安装 ˚
electron-rebuild
后。运行以下命令为您的平台构建 sqlite3 二进制文件。

./node_modules/.bin/electron-rebuild -w sqlite3 -p

如果重建失败,请运行

npm install
,然后再次运行上述命令。


0
投票

对于交叉编译,请尝试开箱即用的

sqlite3-offline
sqlite3-offline-next
软件包


0
投票

可能很简单;我在这个页面上测试了很多东西。这有效。

npm add sqlite3
© www.soinside.com 2019 - 2024. All rights reserved.