Электронное приложение, получающее исключение, требующее SQLITE3
package.json
"name": "billingapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"rebuild": "electron-rebuild -f -w billingapp"
},
"author": "S Kundu",
"license": "ISC",
"dependencies": {
"electron": "^1.7.11",
"sqlite3": "^3.1.13"
}
"devDependencies": {
"electron-rebuild": "^1.7.3"
}
index.js
const electron = require('electron');
const path = require('path');
const url = require('url');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(path.join(__dirname, 'sample.db'));
const {app, BrowserWindow, Menu, ipcMain} = electron;
let mainWindow;
app.on('ready', function(){
// Create the login window
mainWindow = new BrowserWindow({
resizable: true,
fullscreen: false
});
// Load html in window
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, 'login.html'),
protocol: 'file:',
slashes: true
}));
});
login.html
<h1>Welcome to billing system</h1>
Это файлы кода.
Шаги по установке пакетов NPM
npm install electron
npm install sqlite3
Его работа идеально подходит, когда я удаляю следующий код:
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(path.join(__dirname, 'sample.db'));
Но с этим кодом во время работы
npm start
появляется ниже:
Приложение сбросило ошибку во время загрузки
Ошибка: не удается найти модуль 'C:\Users\sintu\Desktop\BillingSystem\node_modules\sqlite3\lib\binding\electron -v 1.7-win32-x64\node_sqlite3.node' в Module._resolveFilename (module.js: 470: 15) в Function.Module._resolveFilename (C:\Users\sintu\Desktop\BillingSystem\node_modules\electronic\dist\resources\electron.asar\common\reset-search-paths.js: 35: 12) в Function.Module._load (module.js: 418: 25) в Module.require(module.js: 498: 17) по требованию (internal/module.js: 20: 19) в Object. (C:\Users\sintu\Desktop\BillingSystem\node_modules\sqlite3\lib\sqlite3.js: 4: 15) в Object. (C:\Users\sintu\Desktop\BillingSystem\node_modules\sqlite3\lib\sqlite3.js: 190: 3) в Module._compile (module.js: 571: 32) в Object.Module._extensions..js (модуль.js: 580: 10) на Module.load(module.js: 488: 32)
когда я запускаю npm run rebuild, я получаю следующую ошибку
× Сбой восстановления
Возникла необработанная ошибка внутри электронной перестройки. Построение проектов в этом решении по одному за раз. Чтобы включить параллельную сборку, добавьте переключатель "/m". C:\Users\sintu\Desktop\billingApp\node_modules\sqlite3\build\deps\action_before_build.vcxproj(20,3): ошибка MSB4019: импортированный проект "C:\Microsoft.Cpp.Default.props" не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске. gyp ERR! ошибка сборки gyp ERR! stack Ошибка: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
не удалось с кодом выхода: 1 gyp ERR! стека в ChildProcess.onExit(C:\Users\sintu\Desktop\billingApp\node_modules\node-gyp\lib\build.js: 258: 23) gyp ERR! stack at emitTwo (events.js: 126: 13) gyp ERR! стек в ChildProcess.emit(events.js: 214: 7) gyp ERR! стек в Process.ChildProcess._handle.onexit(internal/child_process.js: 198: 12) gyp ERR! Система Windows_NT 6.1.7601 gyp ERR! команда "C:\Program Files\nodejs\node.exe" "C:\Users\sintu\Desktop\billingApp\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--target = 1.7. 11 "" --arch = x64 "" --dist-url = https://atom.io/download/electron "" --build -f rom-source "" --module_name = node_sqlite3 "" --module_path = C:\Users\sintu\Desktop\billingApp\node_modules\sqlite3\lib\binding\electron -v 1.7-win32-x64 "" --host = https://mapbox-node-binary.s3.amazonaws.com "--remote_path =./{Name}/v3.1.13/{toolset}/" "--package_name = электрон -v 1.7-win32-x64.tar.gz" gyp ERR! cwd C:\Users\sintu\Desktop\billingApp\node_modules\sqlite3 gyp ERR! узел -v v8.9.1 gyp ERR! node-gyp -v v3.6.2 gyp ERR! не хорошо
Ошибка с кодом выхода: 1
Ошибка: построение проектов в этом решении по одному. Чтобы включить параллельную сборку, добавьте переключатель "/m". C:\Users\sintu\Desktop\billingApp\node_modules\sqlite3\build\deps\action_before_build.vcxproj(20,3): ошибка MSB4019: импортированный проект "C:\Microsoft.Cpp.Default.props" не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске. gyp ERR! ошибка сборки gyp ERR! stack Ошибка: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
не удалось с кодом выхода: 1 gyp ERR! стека в ChildProcess.onExit(C:\Users\sintu\Desktop\billingApp\node_modules\node-gyp\lib\build.js: 258: 23) gyp ERR! stack at emitTwo (events.js: 126: 13) gyp ERR! стек в ChildProcess.emit(events.js: 214: 7) gyp ERR! стек в Process.ChildProcess._handle.onexit(internal/child_process.js: 198: 12) gyp ERR! Система Windows_NT 6.1.7601 gyp ERR! команда "C:\Program Files\nodejs\node.exe" "C:\Users\sintu\Desktop\billingApp\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--target = 1.7. 11 "" --arch = x64 "" --dist-url = https://atom.io/download/electron "" --build -f rom-source "" --module_name = node_sqlite3 "" --module_path = C:\Users\sintu\Desktop\billingApp\node_modules\sqlite3\lib\binding\electron -v 1.7-win32-x64 "" --host = https://mapbox-node-binary.s3.amazonaws.com "--remote_path =./{Name}/v3.1.13/{toolset}/" "--package_name = электрон -v 1.7-win32-x64.tar.gz" gyp ERR! cwd C:\Users\sintu\Desktop\billingApp\node_modules\sqlite3 gyp ERR! узел -v v8.9.1 gyp ERR! node-gyp -v v3.6.2 gyp ERR! не хорошо
Не удалось с кодом выхода: 1 в SafeSubscriber._error (C:\Users\sintu\Desktop\billingApp\node_modules\spawn-rx\lib\src\index.js: 277: 84) в SafeSubscriber.__ tryOrUnsub (C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 239: 16) в SafeSubscriber.error(C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 198: 26) в Subscriber._error (C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 129: 26) в Subscriber.error(C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 103: 18) в MapSubscriber.Subscriber._error (C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 129: 26) в MapSubscriber.Subscriber.error(C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 103: 18) в SafeSubscriber._next (C:\Users\sintu\Desktop\billingApp\node_modules\spawn-rx\lib\src\index.js: 251: 65) в SafeSubscriber.__ tryOrUnsub (C:\Users\sintu\Desktop\billingApp\node_modules\rxjs\Subscriber.js: 239: 16) в файле SafeSubscriber.next(C:\Users\sintu\De sktop\billingApp\node_modules\rxjs\Subscriber.js: 186: 22) npm ERR! код ELIFECYCLE npm ERR! errno 4294967295 npm ERR! [email protected] rebuild: electron-rebuild -f -w billingapp
npm ERR! Статус выхода 4294967295 npm ERR! npm ERR! Не удалось выполнить сценарий восстановления [email protected] npm ERR! Вероятно, это не проблема с npm. Вероятно, имеется дополнительный выход для регистрации.
npm ERR! Полный журнал этого прогона можно найти в: npm ERR! C:\Users\sintu\AppData\Roaming\NPM-cache_logs\2018-01-30T15_36_46_678Z-debug.log
Ответы
Ответ 1
кажется, у вас много проблем с вашими сценариями, но вы столкнулись с редкой проблемой с sqlite.
0) Вы можете найти свой источник GitHub здесь, что не работает, пока эта ошибка:
Cannot read property 'on' of undefined
но это еще одна проблема: D
1) Ваш package.json плохо сформирован (например, нет стартового скрипта)
Новый пакет.json
{ // there was no begining bracket
"name": "billingapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"rebuild": "electron-rebuild -f -w billingapp",
"start": "node index.js" // new start script
},
"author": "S Kundu",
"license": "ISC",
"dependencies": {
"electron": "^1.7.11",
"sqlite3": "^3.1.0" // I used this version
},
"devDependencies": {
"electron-rebuild": "^1.7.3"
}
}
2) Когда я установил sqlite, я столкнулся с этой проблемой https://github.com/mapbox/node-sqlite3/issues/758
Кажется, sqlite3 не работает с последней версией nodejs, поэтому вам нужно установить [email protected], для чего вы можете использовать nvm:
см. комментарий по проблеме sqlite3
treedbox прокомментировал 20 декабря 2017 года