Szczęśliwie stworzyłem aplikację kątową i udało mi się ją załadować do Electron przez loadURL.

Problem pojawia się, gdy tworzę produkcyjny plik exe electron-builder build --windows niż dostaję

__dirname = C:\Users\andrewa\AppData\Local\Temp\1UkY0hucKiKzfrpthFH75bMaiLx\resources\app.asar

Jaki jest prawidłowy sposób wczytywania index.html? Czy powinienem używać "asar": false w electron-builder.json , czy jest sposób na załadowanie tego zasobu?

function createWindow() {

    win = new BrowserWindow({
      width: 800,
      height: 600,
      webPreferences: {
        nodeIntegration: true
      }
    });

    win.loadURL(
      url.format({
        pathname: path.join(__dirname, `dist/index.html`), <----------- key line
        protocol: "file:",
        slashes: true
      }),
    );
}

electron-builder.json

  ...
  "win": {
    "icon": "dist/app/assets/icons",
    "target": ["portable"]
  },
0
Andrew Allen 9 grudzień 2019, 18:13

1 odpowiedź

Najlepsza odpowiedź

To Pakowanie aplikacji elektronów daje szczegóły dotyczące typu pliku ASAR.

Aby zobaczyć, co znajduje się w pliku app.asar, możesz uruchomić następujące pytania
npx asar list /path/to/app.asar

Specyficzne dla mojego przypadku pracuję na zewnątrz elektron dla serwera HTTP, więc musiałem włączyć następujące informacje wewnątrz Electron-Builder.Json , co powoduje, że są w tym samym folderze resources/app.asar.unpacked/ plik app.asar.

  "asarUnpack": [
    "**/dist/procurement-app/*",
    "http/*.js",
    "node_modules/mime/*",
    "node_modules/mime-types/*",
    "node_modules/mime-db/*"
  ],
2
Andrew Allen 11 grudzień 2019, 09:31