let config = {
mode: 'production',
resolve: {
modules: [
"node_modules"
]
},
plugins: [],
module: {
rules: []
}
};
// entry
config.entry = {
main: ["/media/home/gidea/software/gamesCupboard/gamesCupboard/build/js/packages/GamesCupboard-gamescupboard-client/kotlin/GamesCupboard-gamescupboard-client.js"]
};
config.output = {
path: "/media/home/gidea/software/gamesCupboard/gamesCupboard/gamescupboard-client/build/distributions",
filename: (chunkData) => {
return chunkData.chunk.name === 'main'
? "gamescupboard-client.js"
: "gamescupboard-client-[name].js";
},
library: "gamescupboard-client",
libraryTarget: "umd",
globalObject: "this"
};
// source maps
config.module.rules.push({
test: /\.js$/,
use: ["source-map-loader"],
enforce: "pre"
});
config.devtool = 'source-map';
config.ignoreWarnings = [/Failed to parse source map/]
// Report progress to console
// noinspection JSUnnecessarySemicolon
;(function(config) {
const webpack = require('webpack');
const handler = (percentage, message, ...args) => {
const p = percentage * 100;
let msg = `${Math.trunc(p / 10)}${Math.trunc(p % 10)}% ${message} ${args.join(' ')}`;
msg = msg.replace("/media/home/gidea/software/gamesCupboard/gamesCupboard/build/js", '');;
console.log(msg);
};
config.plugins.push(new webpack.ProgressPlugin(handler))
})(config);
// noinspection JSUnnecessarySemicolon
;(function(config) {
const tcErrorPlugin = require('kotlin-test-js-runner/tc-log-error-webpack');
config.plugins.push(new tcErrorPlugin())
config.stats = config.stats || {}
Object.assign(config.stats, config.stats, {
warnings: false,
errors: false
})
})(config);
// save evaluated config file
;(function(config) {
const util = require('util');
const fs = require('fs');
const evaluatedConfig = util.inspect(config, {showHidden: false, depth: null, compact: false});
fs.writeFile("/media/home/gidea/software/gamesCupboard/gamesCupboard/gamescupboard-client/build/reports/webpack/GamesCupboard-gamescupboard-client/webpack.config.evaluated.js", evaluatedConfig, function (err) {});
})(config);
module.exports = config