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