71 lines
1.4 KiB
JavaScript
71 lines
1.4 KiB
JavaScript
|
const path = require('path');
|
||
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||
|
|
||
|
module.exports = {
|
||
|
cache: true,
|
||
|
entry: './frontend/src/main.ts',
|
||
|
output: {
|
||
|
path: path.resolve(__dirname, 'dist', 'frontend'),
|
||
|
filename: 'main.bundle.js',
|
||
|
},
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.ts$/,
|
||
|
exclude: /node_modules/,
|
||
|
use: [
|
||
|
{
|
||
|
loader: 'babel-loader',
|
||
|
options: {
|
||
|
presets: ['@babel/env'],
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
loader: 'ts-loader',
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
test: /\.hbs$/,
|
||
|
use: {
|
||
|
loader: 'handlebars-loader',
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
test: /\.scss$/,
|
||
|
use: [
|
||
|
{
|
||
|
loader: MiniCssExtractPlugin.loader,
|
||
|
},
|
||
|
{
|
||
|
loader: 'css-loader',
|
||
|
},
|
||
|
{
|
||
|
loader: 'postcss-loader',
|
||
|
options: {
|
||
|
postcssOptions: {
|
||
|
plugins: ['postcss-preset-env'],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
loader: 'sass-loader',
|
||
|
options: {
|
||
|
sourceMap: true,
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
plugins: [
|
||
|
new HtmlWebpackPlugin({
|
||
|
title: 'metropolis',
|
||
|
}),
|
||
|
new MiniCssExtractPlugin({
|
||
|
filename: 'css/style.css',
|
||
|
}),
|
||
|
],
|
||
|
};
|