import path from 'path'; import { Configuration, DefinePlugin } from 'webpack'; import packageJSON from '../package.json'; import productionConfig from './webpack.config.production'; const PORT = packageJSON.dev['dev-server-port']; let devtool: Configuration['devtool']; let plugins: Configuration['plugins'] = []; const output: Configuration['output'] = { libraryTarget: 'commonjs2', filename: 'main.min.js', }; if (process.env.NODE_ENV === 'development') { output.path = path.join(__dirname, '../app'); devtool = 'eval-source-map'; plugins = [ new DefinePlugin({ 'process.env.APP_RENDER_URL': JSON.stringify(`http://localhost:${PORT}/renderer.html`), 'process.env.NODE_ENV': JSON.stringify('development'), 'process.env.INSOMNIA_ENV': JSON.stringify('development'), 'process.env.RELEASE_DATE': JSON.stringify(new Date()), }), ]; } else { output.path = path.join(__dirname, '../build'); devtool = productionConfig.devtool; plugins = productionConfig.plugins; } const configuration: Configuration = { ...productionConfig, devtool, entry: ['./main.development.ts'], output, node: { __dirname: false, // Use node.js __dirname }, target: 'electron-main', plugins, }; export default configuration;