const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const path = require('path'); const mode = process.env.NODE_ENV || 'development'; const prod = mode === 'production'; module.exports = { entry: { 'build/bundle': ['./src/main.js'] }, resolve: { alias: { svelte: path.resolve('node_modules', 'svelte/src/runtime') }, extensions: ['.mjs', '.js', '.svelte'], mainFields: ['svelte', 'browser', 'module', 'main'], conditionNames: ['svelte', 'browser'] }, output: { path: path.join(__dirname, '/public'), filename: '[name].js', chunkFilename: '[name].[id].js' }, module: { rules: [ { test: /\.svelte$/, use: { loader: 'svelte-loader', options: { compilerOptions: { dev: !prod }, emitCss: prod, hotReload: !prod } } }, { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, 'css-loader' ] } ] }, mode, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css' }) ], devtool: prod ? false : 'source-map', devServer: { hot: true, static: { directory: path.join(__dirname, 'public'), } } };