Как использовать электрон на сгенерированном приложении Jhipster Angular? - PullRequest
1 голос
/ 25 октября 2019

Я только что обнаружил электрон и нашел его интересным, поэтому я хочу внедрить его в свой угловой проект jhipster (последняя версия jhipster)

Я пытался следовать этому руководству и адаптировать его, но я верю, поскольку Jhipster использует Webpackмоя сборка не в порядке

вот что я сделал

Я объявил файл main.js в папке src / main / webapp какниже

const { app, BrowserWindow } = require("electron");
const path = require("path");
const url = require("url");

let win;

function createWindow() {
  win = new BrowserWindow({ width: 800, height: 600 });

  // load the dist folder from Angular
  win.loadURL(
    url.format({
      pathname: path.join(__dirname, `/dist/index.html`),
      protocol: "file:",
      slashes: true
    })
  );

  // The following is optional and will open the DevTools:
  // win.webContents.openDevTools()

  win.on("closed", () => {
    win = null;
  });
}

app.on("ready", createWindow);

// on macOS, closing the window doesn't quit the app
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") {
    app.quit();
  }
});

// initialize the app's main window
app.on("activate", () => {
  if (win === null) {
    createWindow();
  }
});

Затем я попытался обновить мои конфигурационные файлы, как показано ниже:

package.json

{
  "name": "boxing",
  "version": "0.0.1-SNAPSHOT",
  "main": "main.js", <-- added this
  "description": "Description for boxing",
  "private": true,
  "license": "UNLICENSED",
  "cacheDirectories": [
    "node_modules"
  ],
  "dependencies": {
    "@angular-devkit/build-angular": "^0.803.14", <-- installed using npm
    ...
  "scripts": {
    "electron": "ng build --base-href ./ && electron .",

angular.json

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "boxing": {
      "root": "",
      "sourceRoot": "src/main/webapp",
      "projectType": "application",
      "schematics": {
        "@schematics/angular:component": {
          "skipTests": true,
          "style": "scss"
        },
        "@schematics/angular:directive": {
          "skipTests": true
        },
        "@schematics/angular:guard": {
          "skipTests": true
        },
        "@schematics/angular:pipe": {
          "skipTests": true
        },
        "@schematics/angular:service": {
          "skipTests": true
        }
      },
      "prefix": "jhi",
      "architect": {
        <-- added this lines
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist"
          }
        }
       <-- end of add
      }
    }
  },
  "defaultProject": "boxing",
  "cli": {
    "packageManager": "npm"
  }
}

Я наконец обновил мой index.html href до . /

, но когда я запускаю команду в терминале, яполучение этой ошибки

npm run электрона

boxing@0.0.1-SNAPSHOT электрон / home / housseyn / рабочий стол / projects / salle-de-sport ngbuild --base-href ./ && Electron.

Проверка схемы не удалась со следующими ошибками: путь данных "" должен иметь обязательное свойство 'main'. нпм ERR! код ELIFECYCLE npm ERR! errno 1 npm ERR! boxing@0.0.1-SNAPSHOT электрон: ng build --base-href ./ && electron . npm ERR! Статус выхода 1 npm ERR! нпм ERR! Сбой на электронном скрипте boxing@0.0.1-SNAPSHOT. нпм ERR! Это, вероятно, не проблема с npm. Вероятно, есть дополнительные выходные данные журнала> выше.

npm ERR! Полный журнал этого прогона можно найти в: npm ERR! /home/housseyn/.npm/_logs/2019-10-25T16_00_19_675Z-debug.log

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Используйте эту конфигурацию:

{
          "name": "angular-electron-demo",
          "version": "0.0.0",
          "main": "main.js",
          "scripts": {
            "ng": "ng",
            "start": "ng serve",
            "build": "ng build",
            "test": "ng test",
            "lint": "ng lint",
            "e2e": "ng e2e",
            "start:electron": "ng build --base-href ./ && electron ."
          }, 
          // [...]
        }

После добавления этого вы можете использовать скрипт start: Electron для выполнения ng build --base-href ./ && Electron. который сначала строит проект, а затем запускает электрон из текущей папки.

Вернитесь к своему терминалу и запустите:

npm run start:electron
1 голос
/ 26 октября 2019

Вы должны построить свой проект, используя этот комманд npm run electron-build, после чего вы добавляете его в скрипт в свой пакет. Json

отметьте этот документ до конца

Я надеюсь, что это может помочь вам,

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