speed-measure-webpack-plugin icon indicating copy to clipboard operation
speed-measure-webpack-plugin copied to clipboard

Webpack5 , optimization minimizer defaults build error

Open huijiewei opened this issue 4 years ago • 1 comments

https://webpack.js.org/configuration/optimization/

'...' can be used in optimization.minimizer to access the defaults.

so

when i use minimizer: [new CssMinimizerPlugin(), '...'],

build get error TypeError: Cannot create proxy with a non-object as target or handler

huijiewei avatar Apr 29 '21 03:04 huijiewei

In the event this helps someone in the future...

I encountered this because I followed webpack's guidance on conditionally including plugins:

// ...
const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
const smp = new SpeedMeasurePlugin();

module.exports = (env, argv) => {
    // ...
    return smp.wrap({
        entry: {
            // ...
        },
        // ...
        plugins: [
            isDev && new CopyModulesPlugin({
                // ...
            }),
            new webpack.DefinePlugin({
                // ...
            }),
            // ...
        ],
        // ...
    });
};

It was the conditional isDev && ... that was causing this error. Instead, I programmatically created my array of plugins and assigning this to my webpack config:

// ...
const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
const smp = new SpeedMeasurePlugin();
const plugins = [];

if (isDev) {
    plugins.push(new CopyModulesPlugin({
        // ...
    });
}

plugins.push(new webpack.DefinePlugin({
    // ...
});

module.exports = (env, argv) => {
    // ...
    return smp.wrap({
        entry: {
            // ...
        },
        // ...
        plugins,
        // ...
    });
};

jasel-lewis avatar May 30 '24 01:05 jasel-lewis