const path = require('path') const webpack = require('webpack') const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') const TerserPlugin = require('terser-webpack-plugin') const CopyWebpackPlugin = require('copy-webpack-plugin') const { merge } = require('webpack-merge') const baseConfig = require('./webpack.config.base') const { dependencies } = require('../../package.json') let whiteListedModules = ['vue'] module.exports = merge(baseConfig, { mode: 'production', devtool: false, externals: [ ...Object.keys(dependencies || {}).filter(d => !whiteListedModules.includes(d)), ], plugins: [ new CopyWebpackPlugin({ patterns: [ { from: path.join(__dirname, '../../src/static'), to: path.join(__dirname, '../../dist/electron/static'), }, ], }), new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"', }, }), ], optimization: { minimizer: [ new TerserPlugin(), new OptimizeCSSAssetsPlugin({}), ], }, performance: { hints: 'warning', }, node: { __dirname: false, __filename: false, }, })