UNPKG

@gravityforms/gulp-tasks

Version:
47 lines (42 loc) 1.37 kB
/** * External Dependencies */ import { createRequire } from 'node:module'; const require = createRequire( import.meta.url ); const { mergeWithCustomize, customizeArray } = require( 'webpack-merge' ); const { BundleAnalyzerPlugin } = require( 'webpack-bundle-analyzer' ); /** * Internal Dependencies */ import getConfig from '../../config.js'; import devBase from './configs/dev-base.js'; import entry from './entry/theme.js'; import externals from './externals/theme/index.js'; import { scTheme } from './optimization/split-chunks.js'; const { config } = getConfig(); const isDevServer = process.env.WEBPACK_SERVE; const optimization = isDevServer ? {} : { splitChunks: config?.webpack?.overrides?.optimization?.splitChunks?.scTheme || scTheme }; const pluginOverrides = Array.isArray( config.webpack?.overrides?.plugins?.theme ) ? config.webpack.overrides.plugins.theme : []; export default 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 ), } );