mynameiswhm / brotli-webpack-plugin

Prepare Brotli-compressed versions of assets to serve them with Content-Encoding: br
MIT License
218 stars 23 forks source link

adding deleteOriginalAssets flag causing build failure #41

Open issambaccouch opened 3 years ago

issambaccouch commented 3 years ago

angular 8.0.0 "@angular-builders/custom-webpack": "8.4.1", "brotli-webpack-plugin": "^1.1.0", "compression-webpack-plugin": "^6.0.3",

98% after emitting BundleBudgetPluginCannot read property 'size' of undefined TypeError: Cannot read property 'size' of undefined at.../node_modules/@angular-devkit/build-angular/src/angular-cli-files/utilities/bundle-calculator.js:48:58

custom-webpack.config.js :
const CompressionPlugin = require(compression-webpack-plugin); const BrotliPlugin = require(brotli-webpack-plugin); const path = require(path); module.exports = { plugins:[ new BrotliPlugin({ asset: '[fileWithoutExt].[ext].br', test: /\.(js|css|html|svg|txt|eot|otf|ttf|gif)$/, deleteOriginalAssets: true , }), new CompressionPlugin({ test: /\.(js|css|html|svg|txt|eot|otf|ttf|gif)$/, filename(info){ let opFile= info.path.split('.'), opFileType = opFile.pop(), opFileName = opFile.join('.'); return${opFileName}.${opFileType}.gzip; } }) ], }

lanxuexing commented 3 years ago

Not that I know of, but I'm slightly relieved I'm not the only one experiencing this.

const CompressionPlugin = require("compression-webpack-plugin");
const zlib = require("zlib");

module.exports = {
  plugins: [
    new CompressionPlugin({
      filename: "[path][base].br",
      algorithm: "brotliCompress",
      test: /\.(js|css|html|svg)$/,
      compressionOptions: {
        params: {
          [zlib.constants.BROTLI_PARAM_QUALITY]: 11,
        },
      },
      threshold: 10240,
      minRatio: 0.8,
      deleteOriginalAssets: true,
    }),
  ],
};