57 lines
1.1 KiB
JavaScript
57 lines
1.1 KiB
JavaScript
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
const path = require('path');
|
|
const { mdsvex } = require('mdsvex')
|
|
|
|
const mode = process.env.NODE_ENV || 'development';
|
|
const prod = mode === 'production';
|
|
|
|
module.exports = {
|
|
entry: {
|
|
bundle: ['./src/main.js']
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
svelte: path.resolve('node_modules', 'svelte')
|
|
},
|
|
extensions: ['.mjs', '.js', '.svelte','.svx'],
|
|
mainFields: ['svelte', 'browser', 'module', 'main']
|
|
},
|
|
output: {
|
|
path: __dirname + '/public',
|
|
filename: 'bundle.js',
|
|
chunkFilename: 'bundle.[id].js'
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /.(svelte|svx)$/,
|
|
use: {
|
|
loader: 'svelte-loader',
|
|
options: {
|
|
emitCss: true,
|
|
hotReload: true,
|
|
preprocess: mdsvex()
|
|
}
|
|
}
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
use: [
|
|
/**
|
|
* MiniCssExtractPlugin doesn't support HMR.
|
|
* For developing, use 'style-loader' instead.
|
|
* */
|
|
prod ? MiniCssExtractPlugin.loader : 'style-loader',
|
|
'css-loader'
|
|
]
|
|
}
|
|
]
|
|
},
|
|
mode,
|
|
plugins: [
|
|
new MiniCssExtractPlugin({
|
|
filename: 'bundle.css'
|
|
})
|
|
],
|
|
devtool: prod ? false: 'source-map'
|
|
};
|