Electron-Packager не загружающий угловое приложение - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь создать приложение Angular 8, размещенное в Electron. Моя структура продукта выглядит следующим образом:

-прямоугольный клиент

- package.json

- main.js

- src

--- app / index.js

package.json:

{
  "name": "my-app",
  "version": "0.0.0",
  "main": "main.js",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --host 0.0.0.0",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "start-electron": "ng build --base-href ./ && electron .",
    "electron-build-win": "ng build && electron-packager . --x64 --overwrite"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.11",
    "@angular/common": "~8.2.11",
    "@angular/compiler": "~8.2.11",
    "@angular/core": "~8.2.11",
    "@angular/forms": "~8.2.11",
    "@angular/platform-browser": "~8.2.11",
    "@angular/platform-browser-dynamic": "~8.2.11",
    "@angular/router": "~8.2.11",
    "copyfiles": "^2.1.1",
    "core-js": "^2.6.9",
    "electron-service": "^1.0.10",
    "gsap": "^2.1.3",
    "jasmine": "^3.5.0",
    "moment": "^2.24.0",
    "ngx-electron": "^2.1.1",
    "ngx-markdown": "^8.2.0",
    "rxjs": "^6.5.3",
    "tslib": "^1.10.0",
    "uuid": "^3.3.3",
    "xml2js": "^0.4.22",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.9",
    "@angular/cli": "~8.3.9",
    "@angular/compiler-cli": "~8.2.11",
    "@angular/language-service": "~8.2.11",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "^2.0.8",
    "codelyzer": "^5.0.1",
    "electron": "^6.0.11",
    "electron-packager": "^14.1.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.6",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.5.3"
  }
}

main.js:

const { app, BrowserWindow, ipcMain } = require('electron');
let win;

function createWindow() {

    // creates the browser window
    win = new BrowserWindow({
        width: 1920,
        height: 1080,
        backgroundColor: '#fff',
        webPreferences: {
            nodeIntegration: true
        }
        //frame: false // remove menu bar
    })

    win.loadFile(`./dist/index.html`);

    // uncomment below to open the DevTools
    win.webContents.openDevTools();

    console.log('dev tools open');

    // cleanup
    win.on('closed', function() {   
        win.removeAllListeners();
        win = null
    })
}

У меня есть куча данных для загрузки при запуске приложения, поэтому мой app.component перенаправляет на home.component, где у меня есть преобразователь, настроенный для загрузки данных перед перенаправлением. Я прочитал, что для того, чтобы index.html мог перенаправить на другой компонент, мне нужно удалить base href = "./" из index.html и использовать hashLocationStrategy в моем app.module.ts.

Пока что все это работает. Я могу открыть файл index.html самостоятельно и загрузить страницу, выполнив команду package.json "start-Electron", работает отлично, и даже отладка в VSCode работает хорошо.

Проблема, однако, заключается в том, что я запускаю «Electron-build-Win» (используя электронный упаковщик). Он открывает Electron, но страница застряла в index.html вместо index.html / # / home , как и другие методы. Есть ли кто-то, что мне нужно сделать по-другому, чтобы заставить электронный упаковщик запустить это? или я делаю что-то неправильно, что я должен изменить?

Спасибо!

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