PluginProbe
Slider Block by Sliderberg – WordPress Slider & Carousel Plugin for Gutenberg / trunk
Slider Block by Sliderberg – WordPress Slider & Carousel Plugin for Gutenberg vtrunk
1.2.3 1.2.2 1.2.0 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.7 1.0.8 1.0.9
sliderberg / webpack.config.js

webpack.config.js in Slider Block by Sliderberg – WordPress Slider & Carousel Plugin for Gutenberg trunk, at webpack.config.js

68 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 const path = require( 'path' );
2 const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );
3 const CopyWebpackPlugin = require( 'copy-webpack-plugin' );
4
5 /**
6 * Webpack configuration for Sliderberg
7 *
8 * Bundle architecture:
9 * - index.js (~54KB): Editor bundle - React components, settings UI, block registration
10 * Only loaded in WordPress admin when editing posts/pages
11 * - view.js (~27KB): Frontend bundle - Vanilla TS slider controller, animations, events
12 * Only loaded when page contains sliderberg/sliderberg block
13 *
14 * Code splitting consideration:
15 * Current bundles are compact enough that aggressive code splitting would add
16 * complexity without significant benefit. WordPress already conditionally loads
17 * assets based on has_block('sliderberg/sliderberg').
18 *
19 * To analyze bundle composition, run:
20 * ANALYZE_BUNDLE=true npm run build
21 */
22 const BundleAnalyzerPlugin = process.env.ANALYZE_BUNDLE
23 ? require( 'webpack-bundle-analyzer' ).BundleAnalyzerPlugin
24 : null;
25
26 module.exports = {
27 ...defaultConfig,
28 entry: {
29 index: './src/index.ts',
30 view: './src/view.ts',
31 },
32 resolve: {
33 ...defaultConfig.resolve,
34 alias: {
35 ...( defaultConfig.resolve?.alias || {} ),
36 '@sliderberg/shared': path.resolve( __dirname, '../shared/src' ),
37 },
38 },
39 plugins: [
40 ...( defaultConfig.plugins || [] ),
41 ...( BundleAnalyzerPlugin ? [ new BundleAnalyzerPlugin() ] : [] ),
42 new CopyWebpackPlugin( {
43 patterns: [
44 {
45 from: path.resolve(
46 __dirname,
47 'src/blocks/slider/block.json'
48 ),
49 to: path.resolve(
50 __dirname,
51 'build/blocks/slider/block.json'
52 ),
53 },
54 {
55 from: path.resolve(
56 __dirname,
57 'src/blocks/slide/block.json'
58 ),
59 to: path.resolve(
60 __dirname,
61 'build/blocks/slide/block.json'
62 ),
63 },
64 ],
65 } ),
66 ],
67 };
68