Как запустить основной электронный процесс с помощью веб-пакета 4 и включить горячую замену модуля? - PullRequest
2 голосов
/ 27 апреля 2019

Я создаю электронное приложение и хочу, чтобы горячая замена модуля работала для обоих основных процессов.

Я проверил несколько различных идей конфигурации веб-пакетов, но не повезло. У меня есть рендерер, работающий с сервером webpack.

базовая конфигурация webpack

const webpack = require("webpack");
const isDevelopment = process.env.NODE_ENV !== "production";
const hmr = new webpack.HotModuleReplacementPlugin();

let config = {
  mode: isDevelopment ? "development" : "production",
  devtool: "inline-source-map",
  node: {
    __dirname: false
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        use: {
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"]
          }
        }
      },
      {
        test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
        loader: "url-loader?limit=10000&mimetype=application/font-woff"
      },
      {
        test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
        loader: "file-loader"
      },
      {
        test: /\.(png|jp(e*)g|svg|icns|ico)$/,
        use: [
          {
            loader: "url-loader",
            options: {
              limit: 8000, // Convert images < 8kb to base64 strings
              name: "images/[hash]-[name].[ext]"
            }
          }
        ]
      }
    ]
  },
  plugins: [hmr]
};

module.exports = config;

основной процесс конфигурации веб-пакета

const path = require("path");
const merge = require("webpack-merge");
const baseConfig = require("./webpack.base.config.js");

let config = {
  devtool: "source-map",
  target: "electron-main",
  entry: path.resolve("./src/main/index.js"),
  output: {
    path: path.resolve("./build/"),
    filename: "main.js"
  }
};

module.exports = merge.smart(baseConfig, config);

Я ожидаю, что основной процесс будет запущен, и если я переключу модули на горячую перезагрузку модуля.

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