How to include webpack plugins when using Laravel Mix?

sazr posted 1 year ago

How should I include webpack plugins if I use WebPack AND Laravel Mix? I am confused which file I add the plugin code into.

My below attempt doesn't seem to be running my plugin. The plugin should be compressing the js, css files but its not.



  // My plugin is here
  const CompressionPlugin = require('compression-webpack-plugin');

  Mix.dispatch('init', Mix);

  let WebpackConfig = require('./node_modules/laravel-mix/src/builder/WebpackConfig');

  module.exports = new WebpackConfig({
     plugins: [
      new CompressionPlugin({
        asset: "[path].gz[query]",
        algorithm: "gzip",
        test: /\.js$|\.css$|\.html$|\.svg$/,
        threshold: 10240,
        minRatio: 0.8


  let mix = require('laravel-mix');

     .js('src/app.js', 'scripts/')
     .sass('src/styles/app.scss', 'styles/')
     .copyDirectory('src/assets', 'dist/assets')
        processCssUrls: false,
        uglify: true

My NPM command is:

node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=webpack.config.js

Sign in to participate in this thread!

We'd like to thank these amazing companies for supporting us