const webpack = require('webpack'); const path = require('path'); // Extract CSS into separate files const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); // Global variables const globals = { $: 'jquery', jQuery: 'jquery', Terminal: ['xterm', 'Terminal'], 'window.jQuery': 'jquery', 'window.$': 'jquery', }; module.exports = { mode: 'production', target: 'electron-renderer', entry: { app: './render/src/js/app.js', }, output: { filename: 'js/[name].js', path: path.resolve(__dirname, 'render/dist'), publicPath: '/dist/', }, plugins: [ new CleanWebpackPlugin({ cleanBeforeEveryBuildPatterns: [path.join(__dirname, 'render/dist')], }), new webpack.ProvidePlugin(globals), new MiniCssExtractPlugin({ filename: 'css/[name].css' }), new webpack.NoEmitOnErrorsPlugin(), ], module: { rules: [ // CSS { test: /\.css$/, use: [{ loader: MiniCssExtractPlugin.loader }, { loader: 'css-loader' }], }, ], }, };