UNPKG

@gridonic/webpack

Version:
48 lines (37 loc) 1.22 kB
// @see https://github.com/survivejs/webpack-merge const merge = require('webpack-merge'); // @see https://github.com/developit/dlv const delve = require('dlv'); // @see https://github.com/martinandert/except const except = require('except'); const { handlePreset } = require('../helpers'); const { common } = require('../presets'); const defaults = { mode: 'production', output: { filename: '[name].[hash].js' }, css: { extract: { filename: '[name].[hash].css' } } }; // @see https://webpack.js.org/guides/production/ module.exports = (options = {}) => merge({ // @see https://webpack.js.org/concepts/mode/ mode: defaults.mode, // @see https://webpack.js.org/configuration/devtool/ // @see https://webpack.js.org/guides/production/#source-mapping devtool: 'source-map' }, // Apply any presets given by user configuration ...delve(options, 'presets', []).map( preset => handlePreset(preset, { mode: defaults.mode }, options) ), // Apply common presets that are available // by default in development/production common( except(merge(defaults, options), 'presets') ), );