Electron and React - Как исправить неверный путь ленивого загруженного чанка - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь обернуть приложение activjs электроном. Приложение React было создано с использованием create-Reaction-app . Все работает как положено, если я запускаю электронное приложение локально (режим разработки). Если я пытаюсь создать производственную сборку, я сталкиваюсь со следующей проблемой, показанной ниже:

Electron invalid path

3.a8632079.chunk.js имеет неверный путь. Этот блок генерируется, если я лениво загружаю компонент (например, компонент Login) с помощью React.lazy () . Если я удаляю ленивую загрузку, в рабочем режиме все работает как положено.

Следующее решает проблему (добавлено в main.js ):

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', () => {
  // Modify the user agent for all requests to the following urls.
  const filter = {
    urls: ['file:///static/js/*'],
  };

  session.defaultSession.webRequest.onBeforeRequest(filter, (details, callback) => {
    const prefix = 'file:///Applications/test-electron.app/Contents/Resources/app.asar/renderer/';
    const redirectURL = `${prefix}${details.url.replace('file:///', '')}`;

    callback({ redirectURL });
  });

  createWindow();
});

Есть мысли? Возможным решением может быть удаление приложения и обновление конфигурации для веб-пакета (мне это не нравится). Есть ли лучшее решение? Спасибо.


Среда:

  • macOS: Catalina v10.15
  • Chrome: версия 78.0.3904.70 (Официальная сборка) (64-разрядная версия)
  • пряжа 1.19.1
  • npm 6.12.0
  • узел 10.16.3
"dependencies": {
  ...
  "react": "16.10.2",
  "react-dom": "16.10.2",
  ...
},
"devDependencies": {
   "concurrently": "5.0.0",
   "electron": "6.0.12",
   "electron-builder": "21.2.0",
   "electron-rebuild": "1.8.6",
   "sqlite3": "4.1.0",
   "wait-on": "3.3.0"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...