@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
43 lines (40 loc) • 1.3 kB
JavaScript
/**
* External Dependencies
*/
const { mergeWithCustomize, customizeArray } = require( 'webpack-merge' );
const BundleAnalyzerPlugin = require( 'webpack-bundle-analyzer' ).BundleAnalyzerPlugin;
/**
* Internal Dependencies
*/
const devBase = require( './configs/dev-base.js' );
const entry = require( './entry/theme' );
const externals = require( './externals/theme' );
const sc = require( './optimization/split-chunks' );
const getConfig = require( '../../config' );
const { config } = getConfig();
const isDevServer = process.env.WEBPACK_SERVE;
const optimization = isDevServer ? {} : { splitChunks: config?.webpack?.overrides?.optimization?.splitChunks?.scTheme || sc.scTheme };
const pluginOverrides = Array.isArray( config.webpack?.overrides?.plugins?.theme )
? config.webpack.overrides.plugins.theme
: [];
module.exports = mergeWithCustomize( {
customizeArray: customizeArray( {
optimization: 'append',
plugins: 'append',
} ),
} )( devBase, {
entry,
externals,
optimization,
output: {
path: config.paths.js_dist,
},
plugins: [
...pluginOverrides,
! isDevServer && new BundleAnalyzerPlugin( {
analyzerMode: 'static',
reportFilename: config?.paths?.reports?.replace( '%s', 'theme-bundle' ) || 'theme-bundle',
openAnalyzer: false,
} ),
].filter( Boolean ),
} );