-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathwebpack.mix.js
50 lines (44 loc) · 1.36 KB
/
webpack.mix.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
let mix = require("laravel-mix");
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
.BundleAnalyzerPlugin;
const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");
/*
|--------------------------------------------------------------------------
| 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.
|
*/
const webpackPlugins = [new LodashModuleReplacementPlugin()];
if (process.env.MIX_ENABLE_BUNDLE_ANALYZER) {
webpackPlugins.push(
new BundleAnalyzerPlugin({
analyzerMode: "static",
reportFilename: "../storage/app/public/report.html",
generateStatsFile: true,
openAnalyzer: false,
statsFilename: "../storage/app/public/stats.json"
})
);
}
mix
.react("resources/assets/js/bootstrap.js", "public/js")
.sass("resources/assets/sass/app.scss", "public/css")
.webpackConfig({
plugins: webpackPlugins
})
.options({
processCssUrls: false,
hmrOptions: {
// host: "gobelins.test",
host: "127.0.0.1",
port: 8080
}
})
.extract(); // Auto-magically split out vendor JS.
if (mix.inProduction()) {
mix.version();
}