const webpack = require('webpack'); const HTMLWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); const baseConfig = require('./webpack.config'); const env = require('../src/config/env'); const _ = require('lodash'); const merge = require('webpack-merge'); const prodConf = { entry: { main: `${env.SRC_ROOT}/webui/src/index.js`, }, module: { rules: [], }, plugins: [ new webpack.DefinePlugin({ '__DEBUG__': false, 'process.env.NODE_ENV': '"production"', }), new webpack.optimize.UglifyJsPlugin({ sourceMap: true, compress: { warnings: false, }, }), new ExtractTextPlugin('style.[contenthash].css'), new HTMLWebpackPlugin({ title: 'ToReplaceByTitle', filename: 'index.html', verdaccioURL: 'ToReplaceByVerdaccio', template: `${env.SRC_ROOT}/webui/template/index.html`, debug: false, inject: true, }), new webpack.NoEmitOnErrorsPlugin(), ], }; prodConf.module.rules = baseConfig.module.rules .filter((loader) => Array.isArray(loader.use) && loader.use.find((v) => /css/.test(v.loader.split('-')[0])) ).forEach((loader) => { loader.use = ExtractTextPlugin.extract({ fallback: 'style-loader', use: _.tail(loader.use), }); }); module.exports = merge(baseConfig, prodConf);