|
|
|
let mix = require('laravel-mix');
|
|
|
|
let webpack = require('webpack');
|
|
|
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
|
|
|
|
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| Mix Asset Management
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
| Mix provides a clean, fluent API for defining some Webpack build steps
|
|
|
|
| for your Laravel application. By default, we are compiling the Sass
|
|
|
|
| file for the application as well as bundling up all the JS files.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
let plugins = [
|
|
|
|
new webpack.ProvidePlugin({
|
|
|
|
'$': 'jquery',
|
|
|
|
jQuery: 'jquery',
|
|
|
|
}),
|
|
|
|
]
|
|
|
|
|
|
|
|
if (process.env.WP_ANALYZE) {
|
|
|
|
plugins.push(new BundleAnalyzerPlugin())
|
|
|
|
}
|
|
|
|
|
|
|
|
mix.webpackConfig({
|
|
|
|
// Force jquery slim - https://code.luasoftware.com/tutorials/webpack/force-jquery-slim-import-in-webpack/
|
|
|
|
resolve: {
|
|
|
|
extensions: ['.js'],
|
|
|
|
alias: {
|
|
|
|
'jquery': 'jquery/dist/jquery.slim.js',
|
|
|
|
'vue$': 'vue/dist/vue.runtime.js',
|
|
|
|
}
|
|
|
|
},
|
|
|
|
plugins,
|
|
|
|
});
|
|
|
|
|
|
|
|
mix.js('resources/assets/js/app.js', 'public/js')
|
|
|
|
.sass('resources/assets/sass/app.scss', 'public/css');
|