Экспресс-доставка статических файлов из приложения electronic-forge

Я написал быстрое приложение 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.

Есть идеи, что я делаю не так?


person dx_over_dt    schedule 18.11.2019    source источник


Ответы (1)


В процессе разработки я работал с каталогом web-app, относящимся к процессу узла, а не с каталогом, скопированным в .webpack/....

Чтобы использовать нужные файлы в производстве, я изменил строку exApp.use() на:

exApp.use(express.static('resources/app/.webpack/main/web-app'));
person dx_over_dt    schedule 18.11.2019