Я не могу создать рабочий исполняемый файл с ReactJS и Electron - PullRequest
1 голос
/ 21 июня 2019

Я немного застрял в процессе сборки.

  1. В настоящее время у меня есть приложение ReactJS, работающее на реагирующих сценариях для dev, и оно работает в приложении Electron (которое подключается к экземпляру localhost: 3000).
  2. Я использую электронный строитель в два этапа для создания файла приложения (Mac).
  3. Я использую Yarn в качестве менеджера пакетов.

Мои свойства package.json scripts и build выглядят так (пропущены несущественные свойства):

  "scripts": {
    "start": "nf start -p 3000",
    "build": "react-scripts build",
    "preelectron-pack": "yarn run build",
    "electron-pack": "build -c.extraMetadata.main=src/start.js",
  },
  "build": {
    "appId": "nonExistant",
    "files": [
      "src/**/*",
      "public/*",
      "node_modules/**/*"
    ],
    "directories": {
      "buildResources": "public"
    }
  }

В моем основном стартовом файле (как указано в scripts.['electron-pack']) мой сценарий start.js, который выглядит как любой шаблонный стартовый сценарий с реагирующим электроном, выполняет это во время моего 'activate' события, которое выглядит следующим образом:

    mainWindow.loadURL(
        process.env.ELECTRON_START_URL
      || url.format({
          pathname: path.join(__dirname, '../public/index.html'),
          protocol: 'file:',
          slashes: true,
      }),
    );

Моя структура каталогов выглядит следующим образом:

  • public/* где находится мой файл index.html (нетранслируемый).
  • src/*, где живет мой реактивный проект.
  • node_modules/* довольно очевидно, этот.
  • Сборки вставляются в build/*
  • Распространяется в dist/*

Когда я открываю файл приложения из dist/mac/<name>.app, я получаю следующее сообщение в моей консоли: Not allowed to load local resource: file:///<path>/dist/mac/<name>.app/Contents/Resources/app.asar/public/index.html

Изменение loadURL с ../public/index.html на ../build/index.html не исправляет это и выдает мне ту же ошибку со ссылкой на точно такой же путь.

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