Files
beatconnect_client/config/main.webpack.config.js
T

57 lines
1.4 KiB
JavaScript

const path = require('path');
const paths = require('./paths');
const webpack = require('webpack');
const getClientEnvironment = require('./env');
module.exports = mode => {
const env = getClientEnvironment('/');
return {
target: 'electron-main',
mode,
entry: {
main: paths.electronIndexJs,
osuSongsScan: paths.osuSongsScan,
osuIsRunning: paths.osuIsRunning,
},
output: {
path: paths.appBuild,
publicPath: paths.publicUrl,
filename: '[name].bundle.js',
},
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.(js|mjs|jsx|ts|tsx)$/,
include: paths.appSrc,
loader: require.resolve('babel-loader'),
options: {
sourceType: 'unambiguous',
presets: ['@babel/preset-env'],
},
},
{
test: /threads.*\.js$/,
loader: 'string-replace-loader',
options: {
multiple: [
{
search: './osuSongsScan.worker.js',
replace: '../../extraResources/osuSongsScan.bundle.js',
},
{
search: './osuIsRunning.worker.js',
replace: '../../extraResources/osuIsRunning.bundle.js',
},
],
},
},
],
},
plugins: [new webpack.DefinePlugin(env.stringified)],
};
};