marvin/webpack.build.config.js
Robert Nasarek 141fc8dd51 FIRST PROTO
2022-08-30 10:51:19 +02:00

66 lines
1.6 KiB
JavaScript

const webpack = require('webpack')
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
// Any directories you will be adding code/files into, need to be added to this array so webpack will pick them up
const defaultInclude = path.resolve(__dirname, 'src')
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader'
],
include: defaultInclude
},
{
test: /\.jsx?$/,
use: [{loader: 'babel-loader'}],
include: defaultInclude
},
{
test: /\.(jpe?g|png|gif)$/,
use: [{loader: 'file-loader?name=img/[name]__[hash:base64:5].[ext]'}],
include: defaultInclude
},
{
test: /\.(eot|svg|ttf|woff|woff2)$/,
use: [{loader: 'file-loader?name=font/[name]__[hash:base64:5].[ext]'}],
include: defaultInclude
}
]
},
target: 'electron-renderer',
plugins: [
new HtmlWebpackPlugin({
title: 'Marvin',
template: 'src/index.html'
}),
new MiniCssExtractPlugin({
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: 'bundle.css',
chunkFilename: '[id].css'
}),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
}),
// new MinifyPlugin()
],
/*
stats: {
colors: true,
children: false,
chunks: false,
modules: false
},
*/
optimization: {
minimize: true
}
}