Как заставить 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-разрядная версия. Когда я установил стандартную версию, мой процесс восстановления работал нормально!