Электронное приложение, получающее исключение, требующее 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 года