let config = { mode: 'production', resolve: { modules: [ "node_modules" ] }, plugins: [], module: { rules: [] } }; // entry config.entry = { main: ["/home/jenkins/.jenkins/workspace/app-branded-kaisipan/build/js/packages/UstadMobile-app-react/kotlin-dce/UstadMobile-app-react.js"] }; config.output = { path: "/home/jenkins/.jenkins/workspace/app-branded-kaisipan/app-react/build/dist-web/umapp", filename: (chunkData) => { return chunkData.chunk.name === 'main' ? "app-react.js" : "app-react-[name].js"; }, library: "app-react", libraryTarget: "umd", globalObject: "this" }; // resolve modules config.resolve.modules.unshift("/home/jenkins/.jenkins/workspace/app-branded-kaisipan/build/js/packages/UstadMobile-app-react/kotlin-dce") // source maps config.module.rules.push({ test: /\.js$/, use: ["source-map-loader"], enforce: "pre" }); config.devtool = 'source-map'; config.stats = config.stats || {} Object.assign(config.stats, config.stats, { warningsFilter: [/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("/home/jenkins/.jenkins/workspace/app-branded-kaisipan/build/js", '');; console.log(msg); }; config.plugins.push(new webpack.ProgressPlugin(handler)) })(config); // css settings ;(function(config) { ;(function(config) { const use = [ { loader: 'css-loader', options: {}, } ] use.unshift({ loader: 'style-loader', options: {} }) config.module.rules.push({ test: /\.css$/, use: use, }) })(config); })(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("/home/jenkins/.jenkins/workspace/app-branded-kaisipan/app-react/build/reports/webpack/UstadMobile-app-react/webpack.config.evaluated.js", evaluatedConfig, function (err) {}); })(config); module.exports = config