1
0
Fork 0
inkjs-boilerplate/webpack.config.js

63 lines
1.4 KiB
JavaScript

const path = require('path')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const devMode = (process.env.NODE_ENV !== 'production')
const CopyPlugin = require('copy-webpack-plugin');
const WebpackShellPlugin = require('webpack-shell-plugin');
module.exports = {
mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
entry: [
'./js/script.js',
'./scss/style.scss'
],
plugins: [
new MiniCssExtractPlugin({
filename: '[name].css',
chunkFilename: '[id].css'
}),
new WebpackShellPlugin({
onBuildStart:[
'mono inklecate.exe -o build/fogg.ink.json game/fogg.ink'
]
}),
new CopyPlugin({
patterns: [
{ from: './html/', to: '' },
],
}),
],
module: {
rules: [
{
test: /\.m?js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
{
test: /\.s[ac]ss$/i,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: devMode
}
},
// Translates CSS into CommonJS
'css-loader',
'postcss-loader',
// Compiles Sass to CSS
'sass-loader'
]
},
]
},
output: {
path: path.resolve(__dirname, 'build')
}
}