const path = require('path'); const glob = require('glob'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { entry: { main: [ path.resolve(__dirname, 'static/js/app.js'), path.resolve(__dirname, 'static/css/main.css'), path.resolve(__dirname, 'static/css/components/button.css'), path.resolve(__dirname, 'static/css/layouts/header.css'), path.resolve(__dirname, 'static/css/layouts/footer.css'), path.resolve(__dirname, 'static/css/lib/reset.css'), path.resolve(__dirname, 'static/css/lib/typography.css'), path.resolve(__dirname, 'static/css/lib/utils.css'), path.resolve(__dirname, 'static/css/lib/variables.css'), path.resolve(__dirname, 'static/css/themes/light.css'), // ...glob.sync(path.resolve(__dirname, 'static/css/main/** /*.css')) // Include CSS files for the main page ], // Core core_home: [ path.resolve(__dirname, 'static/css/sections/core.css'), path.resolve(__dirname, 'static/css/pages/core/home.css') ], core_contact: [ path.resolve(__dirname, 'static/css/sections/core.css'), path.resolve(__dirname, 'static/css/pages/core/contact.css') ], // Legal /* legal_accessibility_report: [ path.resolve(__dirname, 'static/js/pages/legal/accessibility_report.js'), path.resolve(__dirname, 'static/css/sections/core.css'), path.resolve(__dirname, 'static/css/pages/legal/accessibility_report.css') ], */ legal_accessibility_statement: [ path.resolve(__dirname, 'static/css/sections/legal.css'), path.resolve(__dirname, 'static/css/pages/legal/accessibility_statement.css') ], legal_retention_schedule: [ path.resolve(__dirname, 'static/css/sections/legal.css'), path.resolve(__dirname, 'static/css/pages/legal/retention_schedule.css') ], legal_license: [ path.resolve(__dirname, 'static/css/sections/legal.css'), path.resolve(__dirname, 'static/css/pages/legal/license.css') ], legal_privacy_policy: [ path.resolve(__dirname, 'static/css/sections/legal.css'), path.resolve(__dirname, 'static/css/pages/legal/privacy_policy.css') ], }, output: { filename: 'js/[name].bundle.js', path: path.resolve(__dirname, 'static/dist'), chunkFilename: '[name].chunk.js', // Non-entry chunk filename }, module: { rules: [ { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, 'css-loader', ], }, { test: /\.js$/, exclude: path.resolve(__dirname, 'templates'), // Exclude templates folder use: { loader: 'babel-loader', }, }, ], }, plugins: [ new MiniCssExtractPlugin({ filename: 'css/[name].bundle.css', }), ], resolve: { extensions: ['.js', '.json', '.wasm'] }, optimization: { splitChunks: { chunks: 'all' }, minimize: false, }, mode: 'development', devtool: 'source-map', };