The modern bundles is for "modern" browsers (or called evergreen). This mode removes the polyfills for older browser to make it smaller (around ~30%).
Nuxt detects that by using our own list: github.com/rlindskog/nuxt.js/blob/...
You can learn more about it in this PR: github.com/nuxt/nuxt.js/pull/4419
Since babel-preset-env depends on browserslist and browserslist depends on caniuse-lite, which is the "fat" dependency you removed from nuxt.
Does the removal matter at all since this is unused data on the server-side, which should not even be installed when using npm install --production?
npm install --production
On the client-side the build should have the same size if I write the same evergreen browsers in my package.json, .babelrc or .browserslistrc.
I still can not tell from github.com/nuxt/nuxt.js/pull/4419/... , if the new list overwrite my browserslist query or detect if my query fits with modern browsers.
Sorry, if this obvious.
Actually if you use babel-preset-env to target specific browser right from Babel, you won't need to use the modern mode.
This modern mode is to both support old browser by giving them a bundle with polyfill while giving the smaller bundle when a modern browser hits the Nuxt server :)
You can learn more about it here anyway: nuxtjs.org/api/configuration-modern
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.