Files
myep/webpack.config.mjs

38 lines
1.4 KiB
JavaScript

import Encore from '@symfony/webpack-encore';
if (!Encore.isRuntimeEnvironmentConfigured()) {
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
}
Encore
.setOutputPath('public/build/')
.setPublicPath('/build')
.addEntry('app', './assets/app.js')
.addEntry('admin', './assets/admin.js')
.splitEntryChunks()
// enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js)
.enableStimulusBridge('./assets/controllers.json')
.enableSingleRuntimeChunk()
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
.enableVersioning(Encore.isProduction())
// Babel 8 dropped preset-env's useBuiltIns/corejs; polyfill-corejs3 is its replacement
.configureBabel((babelConfig) => {
babelConfig.plugins.push(['polyfill-corejs3', {method: 'usage-global', version: '3.51'}]);
})
// Encore 7 ships no CSS minifier of its own
.configureCssMinimizerPlugin((options, MinimizerPlugin) => {
options.minify = MinimizerPlugin.lightningCssMinify;
})
.enablePostCssLoader()
.copyFiles([
{from: './assets/images', to: 'images/[path][name].[hash:8].[ext]'},
{from: './assets/favicon', to: 'favicon/[path][name].[hash:8].[ext]'},
// voucher thumbnails
{from: './assets/vouchers', to: 'images/vouchers/[path][name].[hash:8].[ext]', pattern: /\.jpg$/},
])
;
export default await Encore.getWebpackConfig();