Serve gzip and brotli compressed assets.

This commit is contained in:
Jan Böhmer 2020-05-10 22:12:56 +02:00
parent 000623ee01
commit 1f32cbd613
4 changed files with 241 additions and 8 deletions

View file

@ -22,6 +22,9 @@
var Encore = require('@symfony/webpack-encore');
const CopyPlugin = require('copy-webpack-plugin');
const zlib = require('zlib');
const CompressionPlugin = require("compression-webpack-plugin");
// Manually configure the runtime environment if not already configured yet by the "encore" command.
// It's useful when you use tools that rely on webpack.config.js file.
if (!Encore.isRuntimeEnvironmentConfigured()) {
@ -105,6 +108,26 @@ Encore
}
]))
.addPlugin(new CompressionPlugin({
filename: '[path].br[query]',
algorithm: 'brotliCompress',
test: /\.(js|css|html|svg)$/,
compressionOptions: {
// zlibs `level` option matches Brotlis `BROTLI_PARAM_QUALITY` option.
level: 11,
},
//threshold: 10240,
minRatio: 0.8,
deleteOriginalAssets: false,
}))
.addPlugin(new CompressionPlugin({
filename: '[path].gz[query]',
algorithm: 'gzip',
test: /\.(js|css|html|svg)$/,
deleteOriginalAssets: false,
}))
// uncomment if you use API Platform Admin (composer req api-admin)
//.enableReactPreset()
//.addEntry('admin', './assets/js/admin.js')