https://github.com/Jazzepi/bunny-tracker
Я работаю над небольшой локализованной базой данных для некоммерческой организации по спасению кроликов в Огайо (они великолепны), и я борюсь с развернутой версией приложения Electron.
Когда я передаю сообщения от средства визуализации основному процессу, я часто передаю целые объекты Typescript. Я хотел бы использовать эти определения Typescript в основном процессе, не копируя их вручную. Вы можете увидеть этот импорт здесь. Все, что происходит из импорта, начинающегося с ./src/
, извлекается из «пользовательских» модулей ES.
https://github.com/Jazzepi/bunny-tracker/blob/master/main.ts
import { app, BrowserWindow, ipcMain, Menu, MenuItem, MenuItemConstructorOptions, screen, shell } from 'electron';
import * as path from 'path';
import * as url from 'url';
import * as moment from 'moment';
import Bunny from './src/app/entities/Bunny';
import * as sqlite from 'sqlite';
import { Database } from 'sqlite';
import * as log from 'electron-log';
import SQL from 'sql-template-strings';
import IPC_EVENT from './src/app/ipcEvents';
import GENDER from './src/app/entities/Gender';
import RESCUE_TYPE from './src/app/entities/RescueType';
Ошибка, которую я получаю при запуске готового образа приложения, заключается в следующем. Я получаю это изображение в Linux, используя app-image, и в Mac, используя файл dmg.
ohrr@ohrr:~/repos/bunny-tracker$ release/bunny-tracker-2.0.0-x86_64.AppImage
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module './src/app/ipcEvents'
Require stack:
- /tmp/.mount_bunny-45gwlx/resources/app.asar/main.js
-
at Module._resolveFilename (internal/modules/cjs/loader.js:659:15)
at Function.Module._resolveFilename (/tmp/.mount_bunny-45gwlx/resources/electron.asar/common/reset-search-paths.js:43:12)
at Function.Module._load (internal/modules/cjs/loader.js:577:27)
at Module.require (internal/modules/cjs/loader.js:715:19)
at require (internal/modules/cjs/helpers.js:14:16)
at Object.<anonymous> (/tmp/.mount_bunny-45gwlx/resources/app.asar/main.js:50:19)
at Module._compile (internal/modules/cjs/loader.js:808:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
at Module.load (internal/modules/cjs/loader.js:677:32)
В режиме разработки все работает нормально, но не удается найти модули в производственных развертываниях.
Я читал о пользовательских протоколах по приведенным ниже ссылкам, но, похоже, они больше позволяют вам извлекать значения из пользовательских схем URL-адресов, и я хочу import
не возиться с HTML.
Импорт модуля Electron ES6 https://github.com/electron/electron/issues/12011 https://gist.github.com/smotaal/f1e6dbb5c0420bfd585874bd29f11c43
Любая помощь с ответом или даже просто направление меня в правильном направлении было бы здорово! Мое решение, если я не могу понять это, - это символическая ссылка на модули, импортированные пользователем, в пространство, из которого главный процессор может фактически импортировать.
src
, могут выйти из строя. Я думаю, вам нужно указать"rootDir": "src"
- person Aluan Haddad   schedule 23.10.2019