Nuxt 3 is out! Discover more about it on https://nuxt.com/v3

Release Notes

Discover all the release notes for the Nuxt framework

A landscape image A landscape image

Version v2.15.8

Released on August 11, 2021

🐛 Bug Fixes

  • vue-app
    • #9460 Don't normalise route path if it's valid
  • babel
    • #9631 Loose option for babel private-property-in-object

Version v2.15.7

Released on June 14, 2021

🔰 Security advisory

Please upgrade to nuxt@^2.15.7 if using nuxt@2.15.5 or nuxt@2.15.6

🐛 Bug Fixes

  • vue-app
    • #9431 Check whether a route exists within the nuxt app before replacing

Version v2.15.6

Released on May 12, 2021

🐛 Bug Fixes

  • types
    • #9270 Pin to @types/webpack-dev-middleware@4.1.2 (resolves #9268 )

Version v2.15.5

Released on May 9, 2021

🐛 Bug Fixes

  • babel
    • #9232 Loose option for babel class-properties and private-methods (resolves #9224 )
  • vue-app
    • #9201 Use route.replace instead of router.push to trigger navigation guards (resolves #9111 )
  • builder
    • #9153 Resolve aliases in build.watch paths (resolves #9045 )
  • cli

💖 Thanks to

Version v2.15.4

Released on April 1, 2021

🐛 Bug Fixes

  • vue-app
    • #8978 Reload page once after loading chunk error (resolves #3389 )
    • #9008 Fallback to global nuxt instance of $root is not available (resolves #8995 )
    • #9010 Use app.context.route to match components in server (resolves #9009 )
    • #9024 Serialize redirect functions in routes (resolves #8979 )
    • #9026 Re-call $fetch if data is missing in payload (resolves #9016 )
    • #9050 Use app.context.route for resolving components (resolves #9049 )
    • #9075 Move internal app runtime config to _app namespace (resolves #9074 )
  • config
    • #9014 Set compileType to icss for css-loader v4
  • server
    • #9034 Avoid caching .js assets in development to fix HMR in safari (resolves #3828 )
  • cli

👕 Types

  • #9078 Inline @types/terser-webpack-plugin
  • #9086 Use options from sass-loader rather than sass (resolves #9085 )
  • #9053 Css-loader v4 type definitions
  • #9018 Don't require all csp policies as keys (resolves #9017 )
  • #9059 Add stub entrypoint to allow node resolution of @nuxt/types (resolves #9030 )

💖 Thanks to

Version v2.15.3

Released on March 10, 2021

🐛 Bug Fixes

  • types
    • #8953 Export interface for NuxtConfig instead of type
  • webpack
    • #8951 Update hmr option for extract-css-chunks-webpack-plugin
  • general
    • #8936 Allow force overriding resolve paths
    • #8935 Allow relative public paths
    • #8887 Update @babel/preset-env to 2.13.x
  • vue-renderer
    • #8912 Respect injectScripts for static target

💖 Thanks to

Version v2.15.2

Released on February 23, 2021

🐛 Bug Fixes

💖 Thanks to

Version v2.15.1

Released on February 19, 2021

🐛 Bug Fixes

  • renderer
    • Deep merge runtime config for server (resolves #8820 )
  • webpack
  • cli
    • #8841 Don't early return when a dependency isn't installed
  • types
    • #8835 build.html.minify can be false
  • builder
    • #8832 Use path.resolve for pages dir

💖 Thanks to

Version v2.15.0

Released on February 15, 2021

💡 Highlights

⚠️This release introduces behavior changes. Update with caution ⚠️

  • Minimum supported Node.js version is 12.0.0 (See #8327 for why)
  • Using jiti as new require engine with typescript support
  • Plug and play works out of the box
  • Allow opting-in to use postcss@8 (See #8546 )

    NOTE: postcss-preset-env is disabled in v8 config as it doesn't support postcss v8 for now , so please install all below dependencies explicitly.

    yarn add --dev css-loader@^5.0.0 postcss@^8.1.10 postcss-import@^13.0.0 postcss-loader@^4.1.0 postcss-url@^10.1.1
    # or
    npm i --save-dev css-loader@^5.0.0 postcss@^8.1.10 postcss-import@^13.0.0 postcss-loader@^4.1.0 postcss-url@^10.1.1
    
  • Several encoding issues resolved by consistently using ufo
  • Components updated to v2 (please read migration guide )
  • Modules When matching a webpack loader by name or query, should use includes instead of exact match (example )

🐛 Bug Fixes

  • general
    • #8794 Ignore trailing slash in static payloads manifest
    • #8738 Encoding issues with payload paths
    • #8423 trailingSlash and child routes not working
  • config
    • #8778 Prevent invalid css filenames in webpack output
  • utils
    • #8780 serializeFunction fails with certain functions
  • vue-app
    • #8759 Enable dynamic publicPath on server-side
    • #8701 Static payload fetching bugfixes
    • #8612 Check for Page.options before looking within
    • #8611 Don't remove req, res and query from context unless in full static mode
    • #8608 Ensure link.__prefetch exists before calling it
    • #8596 Add missing id attribute to noopApp
    • #8557 Scroll-to-top on route changes only
    • #8523 Set push on router instance rather than prototype
    • #8486 Do not preserve state when registering client-side dynamic module
    • #8802 Add leading slash for payload hydration
  • server, vue-app
    • #8748 Address encoding issues with query params
  • dev
    • #8697 Clearnup vue installed plugins from server in dev mode
    • #8556 Resolve module required by create-require in jiti
  • cli
    • #8683 Disable parallel build behaviour when generating
  • webpack
    • #8555 Can't resolve absolute url in css
  • server
    • #8593 Fix HMR issue with serverMiddleware when router.base is set
  • babel
    • #8545 Enable polyfilling of proposal core-js features
  • vue-app, vue-renderer, utils
    • #8489 Respect trailingSlash setting for payloads
  • generator
    • #8474 Ensure static manifest dir exists
    • #8803 Normalize trailing slashes before extendRoutes

🚀 Features

  • cli
    • #8792 Warn if incompatible node and package versions detected
  • postcss
    • #8546 Support postcss v8 with explict postcss installation
  • config, vue-app, vue-renderer
    • #8520 Support dynamic base and publicPath
  • general
    • #8389 Support plug-and-play, typescript runtime and native modules
    • #8346 Update all dependencies that require node 10.x
  • vue-app
    • #8466 Support custom fetchKey for full static generation
  • vue-renderer
    • #8347 Allow adding async attribute to <script> tags

💅 Refactors

  • utils, vue-app
    • #8765 Use ufo to parse queries and join urls
  • vue-app
    • #8621 Simplify scrollToTop checking
  • general
    • Consistent behavior for resolveModule

🏡 Chore

  • general
    • #8440 Fix router base handling with dev-middleware (closes )
    • #8408 Pin css-loader to 4.x
    • #8808 Simplify contributors
  • cli
  • types
  • builder
    • Remove validateTemplate check (ed6e8cd )
  • readme

🇹 Types

  • #8784 Add missing ssr option to config types
  • #8767 vue.config types should be optional
  • #8530 Add missing redirect overload to Context interface
  • #8638 Add enablePreview to context
  • #8648 Add missing loadingScreen type definition

💖 Thanks to

And all nuxters helping everyday with valuable feedbacks 💚

Version v2.14.12

Released on December 16, 2020

🐛 Hot Fixes

How to upgrade?

Use yarn upgrade nuxt or npm up nuxt

Version v2.14.11

Released on December 9, 2020

🐛 Hot Fixes

Version v2.14.10

Released on December 7, 2020

🐛 Hot Fixes

Version v2.14.9

Released on December 2, 2020

🐛 Hot Fixes

  • #8421 Only encode non dynamic path params

Version v2.14.8

Released on December 1, 2020

🐛 Bug Fixes

  • webpack
    • #8205 Allow transpiling packages in nested node_modules
  • general
    • #8325 Handle route encodings and update vue-router
  • vue-router
    • #8394 Force chidren to be required if default child is present (resolves #7823 )
  • cli
    • #8398 Respect router.trailingSlash when serving static files (resolves #8350 )
    • #8337 Handle generate.cache.ignore as a function in ensureBuild
  • generator
  • csp
    • #8352 Apply right csp header when status code is 304 (resolves #8353 )
  • vue-app
    • #8314 Handle missing payloads on full static (resolves #7717 )
    • #8348 Warn if promises and functions are in fetch state (resolves #8338 )
    • #8225 TriggerScroll when transitions is disabled
    • #8289 Use nuxt globalName correctly in nuxt-link and fetch mixin (resolves #8118 )
    • #8280 Prevent redirection loop with URI-encoded path (resolves #8116 )
  • types
    • #8362 Correct vue.config types
    • #8349 Add missing isFetching and nbFetching to NuxtApp interface
    • #8319 NuxtOptionsHead can be a function
    • #8302 Add missing ssrContext and next typings to Context (resolves #8296 )
  • server
    • #8313 Redirect if router.base specified in development

💅 Refactors

👓 Tests

  • general

💖 Thanks to

Version v2.14.7

Released on October 15, 2020

🐛 Bug Fixes

  • babel-preset-app
    • #8203 Always transpile optional chaining and nullish-coalescing for server
  • cli
    • #8200 Rebuild if process.env changes in nuxt.config
    • #8194 Avoid error about nuxt-edge if installed in parent node_modules
    • #8134 Mode deprecation with explicit spa or universal flag
  • vue-app
    • #8170 Use getter to provide this.$nuxt
    • #8055 ScrollRestoration hasn't set
  • types
    • #8182 Add type for serverMiddleware object format
    • #8169 Make NuxtConfig an interface
  • generator
    • #8166 Handle when no routes.json defined
  • general
    • #8206 Add better logs for DX with target option

💖 Thanks to

Version v2.14.6

Released on September 21, 2020

🐛 Bug Fixes

  • babel-preset-app
    • #8085 Allow to specify corejs.version as string
  • vue-app

💖 Thanks to

Version v2.14.5

Released on September 10, 2020

🐛 Bug Fixes

  • vue-app
  • utils
    • #8038 Allow chaining functions with promise (resolves #8037 )
  • general
  • config
    • #8013 Don't interpolate environment variables with undefined value (resolves #7990 and #8013 )
    • #8014 Avoid recursion when interpolating environment variables
    • #8030 Normalize build.indicator: true to default value

💅 Refactors

  • config

🇹 Types

  • general

💖 Thanks to

Version v2.14.4

Released on August 27, 2020

🐛 Bug Fixes

  • vue-renderer
  • cjs
    • #7938 Fix HMR issue with mongoose (resolves #7917 )
    • #7966 Protect clearRequireCache against infinite recursion
  • cli
    • #7948 Handle nuxt generate with --fail-on-error for static target (resolves #7947 )
  • vue-app
    • #7939 Fix variable names shadowing in chrome debugger (resolves #7731 )
  • webpack
    • #7967 No module scripts in spa modern client mode (resolves #7562 )

🏡 Chore

💖 Thanks to

Version v2.14.3

Released on August 16, 2020

🐛 Bug Fixes

  • vue-renderer
    • #7928 Apply nomodule to legacy chunks

💖 Thanks to

Version v2.14.2

Released on August 16, 2020

🐛 Bug Fixes

  • webpack
    • #7906 Avoid using node_modules for chunk names (resolves #7901 )
  • modern
    • #7919 Missing nomodule on legacy modules (resolves #7918 )
  • vue-app
    • #7877 Use anchor to / if route is undefined in error page (resolves #7841 )
    • #7920 Fix vue-router@2.14 regression with scrollToTop
    • #7916 Prevent router.registerModule reallocation (resolves #7915 )
  • router
    • #7912 Use updated error codes to fix redirect errors
  • cli
    • #7860 Improve project dir detection for external commands

👕 Types

  • general
    • #7902 Improve definitions for component transition property

💖 Thanks to

Version v2.14.1

Released on August 4, 2020

🐛 Bug Fixes

  • router
    • #7843 Optional dynamic routing in children routes (resolves #7571 )
    • #7845 Remove optional params in routes ending with index (resolves #5874 )
  • vue-app
  • core, config
  • builder
  • crawler
    • #7806 Skip external links with no schema (resolves #7805 )
  • webpack
  • cli
    • #7802 Generate still runs when cache disabled
    • #7796 Normalize win32 paths for nuxt generate cache (resolves #7792 )

📝 Examples

  • tailwindcss-purgecss
    • #7800 Update tailwindcss from 0.6 to 1.6 using purgecss

🏡 Chore

💖 Thanks to

Version v2.14.0

Released on July 27, 2020

⭐ Highlights

🚀 Features

  • webpack
    • #7785 Auto detect core-js version
  • builder
    • #7754 Support async extendRoutes
  • general
    • #7712 Static target improvements
  • vue-renderer
    • #7633 Add vue-renderer:spa:prepareContext hook
  • vue-app
    • #7611 Add web-types.json for better code insight in WebStorm

🐛 Bug Fixes

  • webpack
    • #7787 ensure loaders are first searched from @nuxt/webpack
    • #7763 font-family hex issue
    • #7667 Fallback for empty chunk name
  • vue-app
    • #7766 nuxt-link prefetch error on fallback page
    • #7718 Handle fallback on generated page
    • #7723 Don't fetch payload for store mutation for preview and spa fallback
  • generator
    • #7776 Avoid duplicate slashes for routes ending with hash
  • cli
    • #7775 Don't use absolute path of .cache/nuxt as transpilation pattern
  • utils
    • #7761 Include routes with children for generation
  • vue-renderer
    • #7752 Read target from class instead of serverContext
  • router
    • #6594 Show default child if trailingSlash is false

🖤 Refactors

  • server
    • 5272a4 Rename externalsWhitelist to externalsAllowlist

📝 Examples

  • vuetify
    • #7767 Use@nuxtjs/vuetify module

👕 Types

  • general
    • #7670 Fix module options type
    • #7709 Add cross-origin property to NuxtOptionsRender
    • #7670 Fix module options type

💖 Thanks to

Version v2.13.3

Released on July 2, 2020

🐛 Bug Fixes

  • vue-app
    • #7656 Check plugin key on Vue.prototype instead of Vue
    • #6745 Sanitize path with trailing slash in getLocation (resolves #6744 )
    • #7654 Handle layout on client error (resolves #7567 )
    • #7657 Don't fetch payload on first spa fallback render (resolves #7648 )
  • webpack
    • #7635 Modern build should wait for legacy assets (resolves #7562 , resolves #7628 )
    • #7639 Use compact name for concatenated modules (resolves #7625 )
  • cli
    • #7647 Handle nuxt static command 👀

💅 Refactors

  • csp
    • #7659 Remove unsafe-eval in dev mode

📝 Examples

  • with-sockets
    • #7650 Deprecated callback and use cjs
  • with-vuetify
    • #7638 Use v-main instead of v-content

👕 Types

  • general
    • #7626 Import types for @nuxt/telemetry and @nuxt/components

💖 Thanks to

Version v2.13.2

Released on June 26, 2020

🐛 Bug Fixes

  • webpack
  • core
    • #7605 Avoid breaking change for duplicate modules (resolves #7605 )
  • cli
    • #7608 Listen to a random port for export and generate (resolves #7597 )
  • vue-app
    • #7614 Remove hash from payload path
    • #7606 Fix wrong layout when redirecting from error page (resolves #7567 )
  • utils
    • #7604 Flat routes if child routes have absolute paths

Dependencies

💖 Thanks to

Version v2.13.1

Released on June 24, 2020

🐛 Bug Fixes

👕 Types

Version v2.13.0

Released on June 18, 2020

What's new?

  • New target: static and full static using nuxt export
  • Built-in .env support and runtimeConfig
  • Auto components discovery with nuxt/components
  • Nuxt Telemetry

Also don't miss nuxt/content and nuxt-composition-api ;)

🚀 Features

  • general
  • cli
  • generator
    • #7455 Allow excluding exported pages using export:page hook
    • #7422 export:route hook and setPayload
  • webpack
    • #7443 Allow babel plugins to be defined by function
    • #7178 Add mjs to babel-loader
  • config
    • #7430 Support .nuxtrc
    • #7420 Improved runtimeConfig
    • #7263 Add configOverrides for loadNuxt and loadNuxtConfig
  • ssr
    • #7383 Add non async split chunk to preload scripts
  • server
    • #7469 Add new render:beforeResponse hook
    • #7358 Add unload method support for serverMiddleware
    • #7307 Support csp report-uri
    • #7214 Add custom HTTP headers into error response
  • modern
    • #7306 Remove inlined safari fix in csp mode
  • vue-app
    • #7212 Inject into plugins context in addition to app context
  • vue-renderer
    • #7170 Add head <base> meta for spa
    • #7168 Pass renderContext to vue-renderer:ssr:templateParams hook
  • babel-preset-app
  • builder
    • #7132 Ignore option to function the same as .nuxtignore

🐛 Bug Fixes

  • core
    • #7267 Improve module not found error
    • #7131 Join with os native sep in resolver
  • general
    • #7286 Use different port for loading-screen SSE
    • #7377 , #7378 Set build indicator icon height for ie11
  • webpack
    • #7462 , #7464 Reduce false negatives in nodeExternals
    • #7318 Allow HMR client path to be set
    • #7305 Use non-eval sourcemap with csp and unsafe-eval script policy
  • vue-app
    • #5703 , #7442 Prevent double layout execution
    • redirect no longer strips trailing slash from URL (#7475 , #7533 )
    • #7162 Allow background customization for default loading template
    • #7271 sanitizeComponent import regression with features disabled
    • #7139 Sanitize layouts after resolve for splitChunks.layout
  • generator
    • #7335 Improve error handling when build does not exists
  • modern
    • #7498 Modulepreload not work in generate
    • #7382 Wrong assets mapping in ssr client modern mode
  • vue-renderer
    • #7439 Fix meta injection when ssr renderer generates a spa page
    • #7376 Base tag should be before any link or script tag
  • generator, builder
    • #7361 Empty build and dist directories instead of remove
  • babel
    • #7297 Not override presets if babelrc is true
  • server
    • #7146 HMR for sub-app serverMiddleware without path

💅 Refactors

  • general
  • config
    • #7187 Move build.crossorigin to render.crossorigin

📝 Examples

  • with-buefy
    • #7381 Update github icon name

🏡 Chore

  • cli
  • general
  • renovate
    • Ignore @types/terser-webpack-plugin
  • pkg
    • #7373 Update rollup and dependencies
  • dep
    • #7119 Upgrade html-webpack-plugin to v4
  • test
    • #7321 Upgrade vue-test-utils to v1
  • benchmark
    • #7205 Fix package.json scripts
  • example

👓 Tests

  • general
    • #7319 Update jest to v26
    • #7252 Add test for inject in context

💙 Types

  • general
    • #7432 Move @nuxt/types to nuxt mono-repo

💖 Thanks to

Version v2.12.2

Released on March 31, 2020

🐛 Bug Fixes

  • server
    • #7146 HMR for sub-app serverMiddleware without path
  • vue-app
    • #7139 Sanitize layouts after resolve for splitChunks.layout
  • core
    • #7131 Join with os native sep in the resolver

Version v2.12.1

Released on March 25, 2020

🐛 Bug Fixes

  • vue-app
    • #7129 Avoid multiple $fetch calls
    • #7103 Use globals.nuxt for fetch client mixin
    • #7128 Set default name to layout to avoid multi mounted calls
  • builder
    • #7097 Ensure entry is in the graph for HMR

🏡 Chore

  • readme
    • #7092 Simplify readme and add gitpod in contributing section
  • examples
    • #7098 Avoid warning with legacy postcss.config.js

💖 Thanks to

Version v2.12.0

Released on March 17, 2020

🚀 Features

  • general
    • #6950 Support crossorigin attribute in SSR script and preload tags
    • #6868 Improve programmatic usage (see docs )
    • #7029 Expose webpack config
    • #6272 Allow disabling loading-screen
  • webpack
    • #6987 Support @import using ~assets in css files
    • #6272 Allow disabling loading-screen
  • vue-app
    • #6880 New fetch syntax (see docs )
    • #6939 Pass error as param to nuxt-loading fail method
    • #6244 Trigger watchParam when param is changed in same route
  • cli
    • #6855 Pass context when nuxt.config exports a function

👌 DX

  • builder
    • #6924 Analyze mode warning rewording
  • general
  • generator
    • #6882 Log message or full error for unhandled error without stack trace
  • cli
    • #6904 Display listening URLs after build
  • vue-app
    • #7032 Improve missing inject value error message
    • #6775 Middleware not executing on double browser back navigation
  • core
    • #7079 Better module not found handling

🔥 Performance

  • vue-renderer
    • #6973 Early return render when redirect happens
    • #6846 Don't serialize session when injectScripts is false

🐛 Bug Fixes

  • core
    • #7002 Deprecated render:context and render:routeContext hooks was not being called
  • babel-preset-app
    • #7070 TypeError when import cjs in webpack building
  • vue-app
    • #6946 Use child transition name when navigating to parent
    • #6854 Add fallback context for errors
    • #6803 Resolve leave transition on child routes
    • #6807 Move head to the index to avoid global state
  • webpack
    • #6864 Provide global URL and URLSearchParams

💅 Refactors

  • general
    • #6954 Use scope variable memo for modern utils
  • utils
    • #6953 Eliminate side effect from modern utils

📝 Examples

  • cached-components
    • #6997 Remove non-existing link

🏡 Chore

  • general
    • #6816 Simplifies Code Contributions & Reviews
  • ci
    • #6857 Support Github actions

👓 Tests

  • general
    • Fix socket-hang-up test
    • Separate dev and unit test
    • Avoid unexpected outside stderr assertion count
    • Fix uncompressed resource size
    • Wrap error test with consola to make output clear

💖 Thanks to

Version v2.11.0

Released on December 17, 2019

🐛 Bug Fixes

  • utils
    • #6777 Add catch statement to non function block in serializeFunction
    • #6791 Fix flatRoutes regex for nested routes with trailing slash enabled
  • vue-app
    • #6658 Pass router mode to getLocation
    • #6683 Apply path-to-regexp options to tokensToFunction
    • #6650 Layout in error.vue not work for Vue.extend component
    • #6623 Add prefetched class to <nuxt-link> after chunk loaded
  • general
    • #6685 context.route issue in plugins and splitChunks.pages === false
    • #6590 Collapsed SSR log
  • webpack
    • #6495 Enable devtool for dev mode
    • #6566 Normalize devtool for terser compatibility
  • config
    • #6583 Typo in unsafeInlineCompatibility name

🚀 Features

  • vue-app
    • #6722 Upgrade vue-router to 3.1.x
  • general
    • #6149 Optionally strip non-client or non-server code
  • vue-renderer
    • #6505 Support evaluation in templates
  • config
    • #6597 Add ignoreOptions for node-ignore

💅 Refactors

  • server
    • #6771 Only append not empty allowed sources to csp

🔥 Performance

  • webpack
    • #6632 Prefer using contenthash

📝 Examples

  • with-sockets
    • #6586 Fix cannot read property 'app' of undefined on nuxt build

🏡 Chore

  • general
    • #6732 Update @nuxtjs/eslint-config to v2 and fix lint errors
    • #6686 Fix typo in middleware readme
    • #6649 Limit stale bot to only issues
    • #6637 Remove unused dependencies
    • #6630 Use .github/config.yml for issue template
  • docs
    • #6719 Update code-of-conduct
  • ci
    • #6739 Remove coverage collection in fixtures
    • #6747 Use LTS Node.js instead of latest
    • #6737 Separate dev test and unit test
  • github
    • #6657 Add chinese translation for issue template

👓 Tests

  • general
    • #6752 Pass array to allowedSources
    • #6740 Use got instead of request
    • #6638 Fix chrome detection in macOS Catalina
    • #6596 SSR log

💖 Thanks to