如何让SQLite与Angular 4+、Electron和NodeJS配合使用

5

我正在尝试使用以下技术构建一个小型桌面应用程序:

  • Angular 4+
  • NodeJS
  • Electron
  • SQLite3

NodeJS 将用于扫描本地用户硬盘并将找到的特定文件插入 SQLite3 数据库。

我查阅了几十份文档和建议。其中大多数建议使用 NodeJS Express 框架,并在 Angular 4+ -> Express -> SQLite3 之间进行层次处理。

但由于它将成为桌面应用程序,所以我想避免使用 Express 框架,因为这完全没有必要。

我尝试过并安装了:

   "sqlite3": "^3.1.9",
   "node-pre-gyp": "^0.6.36",

作为我的项目的依赖项。

然后我读到,如果你想使用原生的nodejs库,你应该运行electron rebuild。所以我也安装了electron rebuild:

"electron-rebuild": "^1.6.0"

作为 devDependencies 并使用以下命令运行它:
./node_modules/.bin/electron-rebuild

成功重新构建sqlite3。

然后我运行电子应用程序,但出现以下错误:

/~/node-pre-gyp/lib/node-pre-gyp.js
Module build failed: Error: ENOENT: no such file or directory, open '/home/haris/development/walter/angular-electron-starter/node_modules/node-pre-gyp/lib/node-pre-gyp.js'
    at Error (native)
 @ ./~/sqlite3/lib/sqlite3.js 1:13-36
 @ ./src/app/home/home.component.ts
 @ ./src/app/home/index.ts
 @ ./src/app/app.module.ts
 @ ./src/app/index.ts
 @ ./src/main.browser.ts
 @ multi (webpack)-dev-server/client?http://localhost:3000 ./src/main.browser.ts

我在这里卡住了。我尝试了很多其他的方法,比如:

1. Removing node_modules
2. npm install --build-from-source

但我仍然收到相同的错误。


根据我的有限经验,node-gyp / node-pre-gyp 构建失败的常见原因是缺少构建工具。你使用的操作系统是什么? - ippi
@ippi 我正在使用 Linux / Ubuntu 16.04(64位)。 - Haris Hajdarevic
使用Alpine,您至少需要安装make gcc g++ python才能使用node-gyp。不确定Ubuntu是否需要这些。 - ippi
(我认为你真正的错误在其他地方) - ippi
@ippi 我已经苦苦寻找两天了,但仍然没有找到问题所在。感谢您的帮助。 - Haris Hajdarevic
@PottaG找到了上述问题的解决方案吗? - Robert
2个回答

5

我刚刚发布了一个示例项目,展示了如何使用Electron、Angular4和Sqlite3构建桌面应用程序。你可以在这里克隆它。

注意: 我已经全局安装了node-gyp。

希望对你有所帮助。


0

对于其他人可能有用的是,我按照@leota的步骤进行了操作(非常感谢!)。

我的问题是我安装了Python 2.7 x64版本,但是我认为它需要32位版本...当我安装标准版本时,我的重建过程正常工作了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接