The modern Property
This feature is inspired by vue-cli modern mode
- Type:
StringorBoolean- Default: false
- Possible values:
'client': Serve both, the modern bundle<script type="module">and the legacy bundle<script nomodule>scripts, also provide a<link rel="modulepreload">for the modern bundle. Every browser that understands themoduletype will load the modern bundle while older browsers fall back to the legacy (transpiled) one.'server'ortrue: The Node.js server will check browser version based on the user agent and serve the corresponding modern or legacy bundle.false: Disable modern build
The two versions of bundles are:
- Modern bundle: targeting modern browsers that support ES modules
- Legacy bundle: targeting older browsers based on babel config (IE9 compatible by default).
Info:
- Use command option
[--modern | -m]=[mode]to build/start modern bundles:
package.json
{
"scripts": {
"build:modern": "nuxt build --modern=server",
"start:modern": "nuxt start --modern=server"
}
}
Note about nuxt generate: The modern property also works with the nuxt generate command, but in this case only the client option is honored and will be selected automatically when launching the nuxt generate --modern command without providing any values.
- Nuxt will automatically detect
modernbuild innuxt startwhenmodernis not specified, auto-detected mode is:
| ssr | Modern Mode |
|---|---|
| true | server |
| false | client |
- Modern mode for
nuxt generatecan only beclient - Use
render.crossoriginto setcrossoriginattribute in<link>and<script>
Please refer Phillip Walton's excellent post for more knowledge regarding modern builds.
Contributors
Debbie O'Brien
Alexander Lichter
pooya parsa
Sébastien Chopin
Benjamin Canac
fgiraud
Sergey Bedritsky
Alba Silvente Fuentes
Krutie Patel
Daniel Roe
Pim
Ahad Birang
Caught a mistake or want to contribute to the documentation? Edit this page on GitHub!
