Left file: appwork-v1_2_2/laravel-vue-starter/webpack.mix.js  
Right file: appwork-v1_3_0/laravel-vue-starter/webpack.mix.js  
1 const mix = require('laravel-mix'); = 1 const mix = require('laravel-mix');
2 const glob = require('glob')   2 const glob = require('glob')
3 const path = require('path')   3 const path = require('path')
4     4  
5 /*   5 /*
6  |--------------------------------------------------------------------------   6  |--------------------------------------------------------------------------
7  | Mix config   7  | Mix config
8  |--------------------------------------------------------------------------   8  |--------------------------------------------------------------------------
9  */   9  */
10     10  
11 mix.options({   11 mix.options({
12     postCss: [require('autoprefixer')]   12     postCss: [require('autoprefixer')]
13 });   13 });
14     14  
15 /*   15 /*
16  |--------------------------------------------------------------------------   16  |--------------------------------------------------------------------------
17  | Webpack config   17  | Webpack config
18  |--------------------------------------------------------------------------   18  |--------------------------------------------------------------------------
19  */   19  */
20     20  
21 mix.webpackConfig({   21 mix.webpackConfig({
22     module: {   22     module: {
23         rules: [{   23         rules: [{
24             test: /node_modules(?:\/|\\).+\.js$/,   24             test: /node_modules(?:\/|\\).+\.js$/,
25             loader: 'babel-loader',   25             loader: 'babel-loader',
26             include: [   26             include: [
27                 path.join(__dirname, 'node_modules/vue-echarts'),   27                 path.join(__dirname, 'node_modules/vue-echarts'),
28                 path.join(__dirname, 'node_modules/resize-detector'),   28                 path.join(__dirname, 'node_modules/resize-detector'),
29                 path.join(__dirname, 'node_modules/vue-masonry')   29                 path.join(__dirname, 'node_modules/vue-masonry')
30             ]   30             ]
31         }]   31         }]
32     },   32     },
33     resolve: {   33     resolve: {
34         alias: {   34         alias: {
35             '@': path.join(__dirname, 'resources/assets/src'),   35             '@': path.join(__dirname, 'resources/assets/src'),
36             'node_modules': path.join(__dirname, 'node_modules')   36             'node_modules': path.join(__dirname, 'node_modules')
37         }   37         }
38     }   38     }
39 })   39 })
40     40  
41 /*   41 /*
42  |--------------------------------------------------------------------------   42  |--------------------------------------------------------------------------
43  | Vendor assets   43  | Vendor assets
44  |--------------------------------------------------------------------------   44  |--------------------------------------------------------------------------
45  */   45  */
46     46  
47 function mixAssetsDir(query, cb) {   47 function mixAssetsDir(query, cb) {
48     (glob.sync('resources/assets/' + query) || []).forEach(f => {   48     (glob.sync('resources/assets/' + query) || []).forEach(f => {
49         f = f.replace(/[\\\/]+/g, '/');   49         f = f.replace(/[\\\/]+/g, '/');
50         cb(f, f.replace('resources/assets', 'public'));   50         cb(f, f.replace('resources/assets', 'public'));
51     });   51     });
52 }   52 }
53     53  
54 const sassOptions = {   54 const sassOptions = {
55     precision: 5 <> 55     precision: 5,
      56     implementation: () => require('node-sass')
56 }; = 57 };
57     58  
58 // Core javascripts   59 // Core javascripts
59 mixAssetsDir('vendor/js/**/*.js', (src, dest) => mix.scripts(src, dest));   60 mixAssetsDir('vendor/js/**/*.js', (src, dest) => mix.scripts(src, dest));
60     61  
61 // Fonts   62 // Fonts
62 mixAssetsDir('vendor/fonts/*.css', (src, dest) => mix.copy(src, dest));   63 mixAssetsDir('vendor/fonts/*.css', (src, dest) => mix.copy(src, dest));
63 mixAssetsDir('vendor/fonts/*/*', (src, dest) => mix.copy(src, dest));   64 mixAssetsDir('vendor/fonts/*/*', (src, dest) => mix.copy(src, dest));
64     65  
65 /*   66 /*
66  |--------------------------------------------------------------------------   67  |--------------------------------------------------------------------------
67  | Entry point   68  | Entry point
68  |--------------------------------------------------------------------------   69  |--------------------------------------------------------------------------
69  */   70  */
70     71  
71 mix.js('resources/assets/src/entry-point.js', 'public');   72 mix.js('resources/assets/src/entry-point.js', 'public');
72     73  
    <> 74 if (Mix.isUsing('hmr')) {
      75     mix.disableNotifications();
      76 } else {
73 mix.version();   77     mix.version();
      78 }