Я написал быстрое приложение Electron Forge, которое просто запускает экспресс-веб-сервер, обслуживающий статические файлы локально. Я предпочитаю запускать процесс узла напрямую для удобства использования.
main.js
import { app, BrowserWindow } from 'electron';
import express from 'express';
const exApp = express();
exApp.use(express.static('web-app'));
exApp.listen(3333);
let mainWindow;
const createWindow = () => {
// Create the browser window.
mainWindow = new BrowserWindow({
// ...
});
// ...
};
// ...
Я использую CopyWebpackPlugin, чтобы копировать файлы, которые мне нужно обслуживать, в .webpack/main/web-app/
каталог.
webpack.main.config.js
module.exports = {
/**
* This is the main entry point for your application, it's the first file
* that runs in the main process.
*/
entry: './src/main.js',
// Put your normal webpack config below here
module: {
rules: require('./webpack.rules'),
},
plugins: [
new CopyPlugin([
{ from: path.resolve(__dirname, 'web-app'), to: 'web-app' }
]),
]
};
Это отлично работает в разработке (через yarn start
).
Когда я пытаюсь запустить yarn make
, оно успешно создает приложение и генерирует исполняемый файл exe, но при попытке доступа к http://localhost:3333/
после запуска приложения появляется сообщение Cannot GET /
404.
Есть идеи, что я делаю не так?