re: Nuxt.js v2.4.0 is out! TypeScript, Smart prefetching and more... VIEW POST

re: Great news! Auto-detection of modern bundles But I'm scratching my head about "modern bundles". Is is modern nodejs or modern browsers? And how...

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:

You can learn more about it in this PR:


So this is only for nuxt users who doesn't use babel-preset-env to transpile JavaScript.

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?

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 , 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:

code of conduct - report abuse