Choices/webpack.config.prod.js
Konstantin Vyatkin 6848970fd9 improve Babel and webpack configurations --> reduce JS bundle size (#670)
* simplify babel config

* fix Cypress VSCode checks

* introduce webpack base config

* fix flacky cypress test

* fix class properties definition

* fix default export

* upgrade affected deps, decrease bundlesize

* run ESLint only on changed files
2019-10-22 17:08:43 +01:00

48 lines
1,009 B
JavaScript

const path = require('path');
const deepMerge = require('deepmerge');
const WrapperPlugin = require('wrapper-webpack-plugin');
const baseConfig = require('./webpack.config.base');
const { name, version, author, homepage } = require('./package.json');
const arrayMerge = (target, source) => [...source, ...target];
const prodConfig = deepMerge(
baseConfig,
{
mode: 'production',
output: {
path: path.join(__dirname, '/public/assets/scripts'),
publicPath: '/public/assets/scripts/',
},
plugins: [
new WrapperPlugin({
header: `/*! ${name} v${version} | © ${new Date().getFullYear()} ${author} | ${homepage} */ \n`,
}),
],
},
{
arrayMerge,
},
);
module.exports = [
deepMerge(
prodConfig,
{
output: { filename: 'choices.js' },
optimization: { minimize: false },
},
{
arrayMerge,
},
),
deepMerge(
prodConfig,
{ output: { filename: 'choices.min.js' } },
{
arrayMerge,
},
),
];