Создание проекта Electron с Angular и Knex - PullRequest
0 голосов
/ 28 сентября 2018

У меня проблемы.

Я пытаюсь создать Electron с Angular , а также Knex для хранения с использованием sqlite3.

Я использовал Angular-Electron , а затем попытался добавить в Angular службу, которая будет управлять базой данных.

Я пытался следовать документации Knex, но каждый раз пытался запуститьесли я получаю эту ошибку:

Module not found: Error: Can't resolve 'aws-sdk' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\node-pre-gyp\lib'
ERROR in ./node_modules/knex/lib/dialects/mssql/index.js
Module not found: Error: Can't resolve 'mssql' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\mssql'
ERROR in ./node_modules/knex/lib/dialects/mssql/index.js
Module not found: Error: Can't resolve 'mssql/lib/base' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\mssql'
ERROR in ./node_modules/knex/lib/dialects/mssql/index.js
Module not found: Error: Can't resolve 'mssql/package.json' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\mssql'
ERROR in ./node_modules/knex/lib/dialects/mysql/index.js
Module not found: Error: Can't resolve 'mysql' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\mysql'
ERROR in ./node_modules/knex/lib/dialects/mysql2/index.js
Module not found: Error: Can't resolve 'mysql2' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\mysql2'
ERROR in ./node_modules/knex/lib/dialects/oracle/index.js
Module not found: Error: Can't resolve 'oracle' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\oracle'
ERROR in ./node_modules/knex/lib/dialects/oracledb/index.js
Module not found: Error: Can't resolve 'oracledb' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\oracledb'
ERROR in ./node_modules/knex/lib/dialects/postgres/index.js
Module not found: Error: Can't resolve 'pg' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\postgres'
ERROR in ./node_modules/knex/lib/dialects/redshift/index.js
Module not found: Error: Can't resolve 'pg' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\redshift'
ERROR in ./node_modules/knex/lib/dialects/postgres/index.js
Module not found: Error: Can't resolve 'pg-query-stream' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\postgres'
ERROR in ./node_modules/knex/lib/dialects/mssql/index.js
Module not found: Error: Can't resolve 'tedious' in 'D:\Projects\IonicProjects\testing\angular-electron\node_modules\knex\lib\dialects\mssql'

Может ли кто-нибудь указать мне правильное направление?У меня нет проблем при создании приложения Electron с Angular для пользовательского интерфейса.Другими словами, приложение Angular упаковано как настольное приложение с использованием Electron, но мне нужно решение для хранения данных, и я хотел бы использовать Sqlite3, но не нашел готовых шаблонов для такого проекта, как этот, и хотел бы получить вашу помощь.

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Попробуйте добавить это в ваш webpack-config

var fs = require("fs");
const nodeModules = {};
fs.readdirSync("node_modules")
  .filter(x => {
      return [".bin"].indexOf(x) === -1;
})
.forEach(mod => {
        nodeModules[mod] = `commonjs ${mod}`;
    });

module.exports = {
    // ommitted for brevity
    externals: [nodeModules],
}
0 голосов
/ 29 сентября 2018

Полагаю, у вас не установлены эти библиотеки.Эти ошибки появляются из-за неустановленных пакетов драйверов базы данных.Knex не устанавливает их автоматически, и вам не нужно их все.

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

Однако может случиться так, что вы можете запустить библиотеку knex только в главном потоке электронного приложения, поэтому, возможно, вы пытаетесь упаковать его в angular, который, возможно, не будет работать вообще.

...