gengitkan/client/webpack.config.js
2019-12-05 16:23:20 +01:00

74 lines
1.5 KiB
JavaScript

const path = require('path');
// Plugins
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const env = process.env;
module.exports = {
mode: `${env.NODE_ENV ? env.NODE_ENV : 'production'}`,
entry: './src/index.js',
devtool: 'inline-source-map',
output: {
path: path.join(__dirname, 'dist')
},
resolve: {
extensions: [ '.jsx', '.js' ],
},
module: {
rules: [{
test: /\.scss$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {}
},
{
loader: "resolve-url-loader",
options: {}
},
{
loader: "sass-loader",
options: {
sourceMap: true,
sourceMapContents: false
}
}
]
},{
test: /\.(woff(2)?|ttf|eot|svg|png)(\?v=\d+\.\d+\.\d+)?$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: '/resources/'
}
}]
},{
test: /\.(html)$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]'
},
},
'extract-loader',
{
loader: 'html-loader',
options: {}
}
]
},{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: ['babel-loader']
}]
},
plugins: [
new MiniCssExtractPlugin({
filename: "css/[name].css",
chunkFilename: "css/[id].css"
})
]
}