Webpack + Electron: Зачем мне нужен скрипт «рендера электронов», если приложение работает без него? - PullRequest
0 голосов
/ 11 июня 2019

Конфигурация ниже веб-пакета не включает { target: electron-renderer }, только electron-main настройки.

module.exports = (env, argv) => {
  return {
      name: 'Electron: main process',
      target: 'electron-main',

      context,
      entry: {
        'InitializeProject_GUI': './InitializeProject_GUI.ts',
      },

      output: {
        path: __dirname,
        filename: '[name].js'
      },

      node: {
        __dirname: false,
        __filename: false
      },

      // ...
    }
};

Тем не менее, команда election InitializeProject_GUI.js запускает мое приложение:

enter image description here

<!DOCTYPE html>
<html lang="en">
   <head>
      <title>My app</title>
   </head>
   <body>
      <h1>Hello, world!</h1>
   </body>
</html>

InitializeProject_GUI.ts (Исходный код: TypeScript)

import URL from 'url';
import Path from 'path';

import {
  app as electronApplication,
  App as ElectronApplication,
  BrowserWindow
} from 'electron';
import enableElectronDebug from 'electron-debug';

class ProjectInitializer {

  private electronApplication: ElectronApplication;
  private mainWindow: BrowserWindow | null = null;

  private static SOURCE_FILES_DIRECTORY_RELATIVE_PATH: string = 'Source';
  private static MARKUP_AND_STYLES_DIRECTORY_RELATIVE_PATH: string = 'GUI';
  private static MAIN_WINDOW_MARKUP__FILE_NAME_WITH_EXTENSION: string = 'MainWindow.html';

  private constructor() {

    this.electronApplication = electronApplication;

    enableElectronDebug();

    this.electronApplication.on('ready', this.onApplicationReadyEventHandler.bind(this));
  }

  public static start(): void {
    const projectInitializer: ProjectInitializer = new ProjectInitializer();
  }

  private onApplicationReadyEventHandler(): void {

    this.mainWindow = new BrowserWindow({
      width: 640,
      height: 500,
      titleBarStyle: 'hidden'
    });

    this.mainWindow.loadURL(URL.format({
      pathname: Path.join(
          __dirname,
          ProjectInitializer.SOURCE_FILES_DIRECTORY_RELATIVE_PATH,
          ProjectInitializer.MARKUP_AND_STYLES_DIRECTORY_RELATIVE_PATH,
          ProjectInitializer.MAIN_WINDOW_MARKUP__FILE_NAME_WITH_EXTENSION
      ),
      protocol: 'file:',
      slashes: true
    }));

    this.mainWindow.setMenu(null);
  }
}

(function executeApplication(): void {
  ProjectInitializer.start();
})();

Почему мое приложение работает без файла сценария рендерера ({ target: electron-renderer })?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...