insomnia/packages/insomnia-app/webpack/webpack.config.electron.ts
2021-07-23 11:04:56 +12:00

46 lines
1.2 KiB
TypeScript

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;