Based on some reports app.js file has a lot of code (77% of it) which is not being used. I did some changes on my webpack and also I'm dynamically importing components in Vue but still no luck.
@Stelikas You need to check each package you use to see if they have special documentation for tree shaking. And yes you are extracting them to vendor.js, but unless they get "tree shaken" you get the whole thing.
For instance lodash.
import _ from 'lodash'
this imports the whole thing.. so every single function is imported. But perhaps you only need a few?
import { map, uniq } from 'lodash';
now we only import a few, and thereby "tree shake" the rest
@Sinnbeck So i used purge css and changed the mix.extract to mix.extract(['vue','vuetify', 'grapes', 'lottie-player', 'moment', 'bootstrap', 'jquery']) and the size decreased significantly. I read here https://github.com/laravel-mix/laravel-mix/issues/3010 that in Laravel Mix 6 it doesn't automatically detect and extract packages, that's what i also noticed, so you must write them manually which is pretty odd, anyway, of course there is room for improvement and if anyone has any suggestions I'm happy to hear.