const Encore = require('@symfony/webpack-encore') const path = require('path') //const ManifestPlugin = require('webpack-manifest-plugin') if (!Encore.isRuntimeEnvironmentConfigured()) { Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev') } Encore .setOutputPath('public/build/') .setPublicPath('/build') .copyFiles({ from: './assets/images', to: 'images/[path][name].[ext]' }) .addEntry('app', './assets/app.js') .splitEntryChunks() // will require an extra script tag for runtime.js // but, you probably want this, unless you're building a single-page app .disableSingleRuntimeChunk() .cleanupOutputBeforeBuild() .enableBuildNotifications() .enableSourceMaps(!Encore.isProduction()) .enableVersioning(Encore.isProduction()) .configureBabel((config) => { config.plugins.push('@babel/plugin-proposal-class-properties') }) // enables @babel/preset-env polyfills .configureBabelPresetEnv((config) => { config.useBuiltIns = 'usage' config.corejs = 3 }) .addAliases({ '@': path.resolve(__dirname, 'assets', 'js'), styles: path.resolve(__dirname, 'assets', 'styles') }) .enableSassLoader() .enableTypeScriptLoader() .enablePostCssLoader((options) => { options.postcssOptions = { // directory where the postcss.config.js file is stored path: './postcss.config.js' } }) .autoProvidejQuery() .enableStimulusBridge( './assets/controllers.json' ) .enableReactPreset() module.exports = Encore.getWebpackConfig()