Webpack Configuration

In certain cases, it may prove easier to drop down a level and override the underlying webpack configuration directly. Mix provides the mix.webpackConfig() command to allow for this.

Basic Usage

// 1. Pass an object.
mix.webpackConfig({
    plugins: []
});

// 2. Pass a callback function.
mix.webpackConfig(webpack => {
    return {
        plugins: []
    };
});

As an example, perhaps you want to provide an array of modules that should be automatically loaded by webpack. We'll use Laravel Spark as an example.

mix.webpackConfig({
    resolve: {
        modules: [
            'node_modules',
            path.resolve(__dirname, 'vendor/laravel/spark/resources/assets/js')
        ]
    }
});

The object passed to mix.webpackConfig() will now smartly be merged with Mix's generated webpack configuration.

Passing a Callback Function

You may alternatively access webpack and all of its properties by passing a callback function.

mix.webpackConfig(webpack => {
    return {
        plugins: [
            new webpack.ProvidePlugin({
                //
            })
        ]
    };
});