Я создаю электронное приложение и хочу, чтобы горячая замена модуля работала для обоих основных процессов.
Я проверил несколько различных идей конфигурации веб-пакетов, но не повезло.
У меня есть рендерер, работающий с сервером 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);
Я ожидаю, что основной процесс будет запущен, и если я переключу модули на горячую перезагрузку модуля.