Quick Webpack Configuration
mix.webpackConfig({} || cb);
While, of course, you're free to edit the provided webpack.config.js
file, in certain settings, it's easier to modify or override the default settings directly from your webpack.mix.js
file.
This is particularly true for Laravel apps, where, by default, the webpack.config.js
isn't available in the project root.
As an example, perhaps you want to add a custom array of modules that should be automatically loaded by webpack.
You have two options in this scenario:
- Edit your
webpack.config.js
file, as needed. - Call
mix.webpackConfig()
within yourwebpack.mix.js
file, and pass your overrides. Mix will then perform a deep merge.
Below, as an example, we'll add a custom module path for Laravel Spark.
mix.webpackConfig({
resolve: {
modules: [
'node_modules',
path.resolve(__dirname, 'vendor/laravel/spark/resources/assets/js')
]
}
});
Using a Callback Function
You can access webpack and all of its properties when passing a callback function.
mix.webpackConfig(webpack => {
return {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
})
]
};
});