Как заставить SQLite работать с Angular 4+, Electron и NodeJS

Я пытаюсь создать одно небольшое настольное приложение, используя:

  • Угловой 4+
  • NodeJS
  • электрон
  • SQLite3

NodeJS будет использоваться для сканирования жесткого диска локального пользователя и вставки определенных файлов, найденных в базе данных SQLite3.

Я проверил десятки документации и предложений. Большинство из них предлагают использовать NodeJS Express Framework и создать слой между Angular 4+ -> Express -> SQLite3.

Я хочу избегать использования экспресс-фреймворка, потому что это будет настольное приложение, и оно совсем не нужно.

Что я попробовал и что я сделал:

Я установил:

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

как зависимости в моем проекте.

Чем я прочитал, если вы хотите использовать нативную библиотеку nodejs, вы должны запустить электронное перестроение. Поэтому я установил также электронное восстановление:

"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

но все равно я получаю ту же ошибку.

Любое предложение или помощь будут очень благодарны.

2 ответа

Я только что опубликовал пример проекта, который показывает, как создать настольное приложение, используя Electron, Angular4 и Sqlite3. Вы можете клонировать это здесь

Обратите внимание, что у меня установлен глобальный узел.

Надеюсь, поможет

За то, что это может стоить другим. Я следовал инструкциям @leota (очень хорошо, спасибо!).

У меня проблема в том, что у меня была версия Python 2.7 x64, и я думаю, что ей требовалась 32-разрядная версия. Когда я установил стандартную версию, мой процесс восстановления работал нормально!

Другие вопросы по тегам