Want to take a look at our new docs? Our new docs are now in beta. Have fun!

Release Notes

v2.14.12

Released on

🐛 Hot Fixes

  • #8494 Fix issues with URL handling (resolves #8497, #8493, #8458, #8457)

How to upgrade?

Use yarn upgrade nuxt or npm up nuxt

v2.14.11

Released on

🐛 Hot Fixes

  • #8462 Add url-polyfill to fix IE11 issue (URL is not a constructor) (resolves #8458)
  • #8462 Update ufo to preserve relative links (resolves #8457, #8459)

v2.14.10

Released on

🐛 Hot Fixes

  • Normalize routes and decode resolved query (#8430) (resolves #8429, #8442)
  • @nuxt/components v1.2.2 (notes)

v2.14.9

Released on

🐛 Hot Fixes

  • #8421 Only encode non dynamic path params

v2.14.8

Released on

🐛 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
    • #8237 Nested route missing trailingSlash (resolves #8165)
    • #8344 Respect publicPath for static assets (resolves #7923, #7815)
  • 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

  • general
    • #8210 Use nuxt everywhere
  • cli
    • #8219 Grammatical errors (resolves #8217)

👓 Tests

  • general
    • #8282 Fix redirect tests

💖 Thanks to

  • Ahad Birang (@farnabaz)
  • Audrius Jakumavicius (@aj-dev)
  • Cain Hall (@cain)
  • Daniel Roe (@danielroe)
  • Mathieu TUDISCO (@mathieutu)
  • Orkhan Alikhanov (@OrkhanAlikhanov)
  • Steve Perkins (@steveperkins)
  • @Zuckjet
  • @padinko

v2.14.7

Released on

🐛 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

  • Daniel Roe (@danielroe)
  • Dmitriy (@Kolobok12309)

v2.14.6

Released on

🐛 Bug Fixes

  • babel-preset-app
    • #8085 Allow to specify corejs.version as string
  • vue-app
    • #8067 Always import error layout (resolves #8066, #8093)
    • #8053 Mock $fetch function for SSR with static target (resolves #8043)

💖 Thanks to

  • Daniel Roe (@danielroe)
  • Dmitriy (@Kolobok12309)
  • Yihao Gao (@Yihao-G)

v2.14.5

Released on

🐛 Bug Fixes

  • vue-app
    • #8016 Missing layout in error page with splittedChunks.layout (resolves #7654, #7658 and #7014)
  • utils
    • #8038 Allow chaining functions with promise (resolves #8037)
  • general
    • #8012 Remove name from production js chunks (resolves #7994 and #7882)
  • 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
    • #8044 Deprecate mode option

🇹 Types

  • general
    • #7985 Expose Inject type

💖 Thanks to

  • Dmitriy (@Kolobok12309)
  • Florent Catiau-Tristant (@Kapcash)
  • @remigermain

v2.14.4

Released on

🐛 Bug Fixes

  • vue-renderer
    • #7954 Add crossorigin for styles (resolves #7953)
  • 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

  • general
    • #7961 Add avif format as image

💖 Thanks to

  • Ahad Birang (@farnabaz)
  • Florent Catiau-Tristant (@Kapcash)
  • Per Anders Ljusbäck (@perljusback)
  • @sho-zy
  • @netkin-paris

v2.14.3

Released on

🐛 Bug Fixes

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

💖 Thanks to

  • Daniel Roe (@danielroe)

v2.14.2

Released on

🐛 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

  • Ahad Birang (@farnabaz)
  • Matthew Gamble (@mwgamble)

v2.14.1

Released on

🐛 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
    • #7801 Handle server-side router errors (resolves #7798)
  • core, config
    • #7839 Disabe esm cache (resolves #7838)
  • builder
    • #7789, #7849 Add types for build.corejs option
  • crawler
    • #7806 Skip external links with no schema (resolves #7805)
  • webpack
    • #7808 Avoid grouping with default name (resolves #7795)
  • 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

  • stale
    • #7828, #7844 Ignore feature request issues

💖 Thanks to

  • Ahad Birang (@farnabaz)
  • @ChangJoo-Park
  • Matthieu Sieben (@matthieusieben)
  • Rafał Chłodnicki (@rchl)
  • @lihbr

v2.14.0

Released on

⭐ 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

  • Ahad Birang (@farnabaz)
  • Daniel Roe (@danielroe)
  • Harlan Wilton (@loonpwn)
  • @IKKO-Ohta
  • Martin Novák (@MartinN3)
  • Matthieu Sieben (@matthieusieben)
  • Piotr Tomiak (@piotrtomiak)
  • Simon Tretter (@simllll)
  • Timothy R. Chavez (@timrchavez)
  • Yaroslav Vorobev (@Zekfad)

v2.13.3

Released on

🐛 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

  • Ben Read (@ReadB)
  • Daniel Roe (@danielroe)
  • Denis Karabaza (@simplesmiler)
  • Kawacrepe (@Kawacrepe)
  • Konstantin Barabanov (@crutch12)

v2.13.2

Released on

🐛 Bug Fixes

  • webpack
    • #7613 Explicitly pass outputFileSystem to webpackDevMiddleware (resolves nuxt/typescript#145)
    • #7603 Chunk name normalization for catch-all pages and windows
  • 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

  • Denis Karabaza (@simplesmiler)
  • Konstantin Barabanov (@crutch12)
  • Michał Kędrzyński (@kedrzu)

v2.13.1

Released on

🐛 Bug Fixes

  • vue-app
    • #7591 Always import resolveRouteComponents (#7587, nuxt/content#123)
    • 6332a Check correct layout when navigating from error (#7567)

👕 Types

  • #7590 Fix module and typescript compatibility (nuxt-community/sentry-module#195)
  • #7590 Add missing crawler config (#7585)

v2.13.0

Released on

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
    • #7476 createRequire option and disable esm for jest
    • #7463 Improve production debugging DX
    • #7408 Experimental nuxt telemetry
    • #7374 Builtin Components
    • Runtime config and built-in dotenv support (#7312, #7420, #7421)
    • Full static target (#6159, #7332, #7334, #7336, #7350, #7399, #7400, #7401, #7431, #7486, #7523, #7518)
  • cli
    • Improve banner DX (#7532, #7537)
  • 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
    • #7144 Add bugfixes option
  • 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
    • #7452 Ad-hoc modules
  • config
    • #7187 Move build.crossorigin to render.crossorigin

📝 Examples

  • with-buefy
    • #7381 Update github icon name

🏡 Chore

  • cli
    • #6031, #7460 Enhance generate no-build description
  • general
    • #7458 Fix minor issues in build scripts
    • #7228 Add ls-lint
    • #7219 Fix typos
  • 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
    • #7211 Update vue-chartjs

👓 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

  • Ahad Birang (@farnabaz)
  • Bogdan Gradinariu (@gion)
  • Daniel Roe (@danielroe)
  • Deniz Temizer (@dtmzr)
  • Eunjae Lee (@eunjae-lee)
  • @IWANABETHATGUY
  • Jimmy (@Geminii)
  • Johannes Lamberts (@JohannesLamberts)
  • Jt Whissel (@Phara0h)
  • Lucas Löffel (@loeffel-io)
  • Mathieu TUDISCO (@mathieutu)
  • Nicolas PENNEC (@NicoPennec)
  • Sibbngheid (@sibbngheid)
  • Tim van den Eijnden (@TimvdEijnden)
  • Yugo Ogura (@Spice-Z)
  • xingo xu (@xingoxu)

v2.12.2

Released on

🐛 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

v2.12.1

Released on

🐛 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

  • Adam (@mercs600)
  • Aster (@asterd)
  • Sean Hellum (@JesterOrNot)
  • @daniluk4000
  • @olddeda

v2.12.0

Released on

🚀 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
    • #6881, #6896 HMR support for server middleware
  • 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

  • 404-NOTFOUND (@404-NF)
  • HG (@husayt)
  • James George (@jamesgeorge007)
  • Jason Poindexter (@jsonpoindexter)
  • Mark Honeychurch (@markhoney)
  • Matteo Rigon (@matteo-rigon)
  • Sand Of Vega (@sandofvega)
  • Sean Hellum (@JesterOrNot)
  • Vladlen (@negezor)
  • @wppd

v2.11.0

Released on

🐛 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

  • Ahad Birang (@farnabaz)
  • Cain Hall (@cain)
  • Daniel Roe (@danielroe)
  • Dennis Herzberg (@dennis47528)
  • Harry Trần (@jetaimefrc)
  • Mohammad M. Shahbazi (@mshahbazi)
  • @PedroD
  • Stephan Besser (@reskume)
  • Rafał Chłodnicki (@rchl)
  • Vanessa A (@Vinesse)
  • @crutch12

v2.10.2

Released on

🐛 Bug Fixes

  • webpack
    • #6495 Enable devtool for dev mode
    • #6566 Normalize devtool for terser compatibility
  • config
    • #6583 Typo in unsafeInlineCompatibility name
  • vue-app
    • #6590 Fix collapsed SSR log

📝 Examples

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

💖 Thanks to

  • @PedroD
  • Stephan Besser (@reskume)

v2.10.1

Released on

🐞 Fixes

  • vue-app, webpack
    • #6504 Remove consola from client
  • utils
    • #6515 Fix error when router.trailingSlash is false
  • generator
    • #6362 Remove trailing slash when no subFolders are used
  • webpack
    • #6520 chunkhash and contenthash not work with extractCSS
  • cli
    • #6525 Enable server for nuxt build when pages should be generated

🏡 Chore

  • readme
    • #6511 Remove deprecated starter template

⚓ Dependency Upgrades

  • vue-meta: Upgraded to v2.3 which fixes duplicated tags in SPA mode

💖 Thanks to

  • Dennis Herzberg (@dennis47528)
  • Yuki Terashima (@y-temp4)

v2.10.0

Released on

🌟Highlights

  • Support for improved typescript runtime
  • Experimental support for feature toggling for SUPER slim builds!
  • Mitigate problems with nuxt server stocking during development
  • Fix issues with internet-explorer in development mode
  • Upgrade to terser webpack plugin v2
  • Improved stability of loading-screen. No more endless loops (nuxt/loading-screen#44) and show fatal errors (nuxt/loading-screen#45) for the initial build

🐛 Bug Fixes

  • core
    • #6490 Clear resolver cache for project files dev mode
  • vue-app
    • #6479 Error page layout not correctly applied in client-side rendering
    • #6473 Pass vm as arg to support data() with arrow function
    • #6433 Fix asyncData hydration when features.transition is false
    • #6430 Clear idle callback
    • #6217 Prevent looping on error during render of error page
  • webpack
    • #6298 Fix consola IE compatibility
    • Revert pause/resume
    • #6460 Correct sass options for sass-loader@8
    • #6448 Don't push to compilersWatching in callback
  • cli
    • #6441 Server should not be initialized in nuxt build
  • babel-preset-app
    • #6435 Use loose mode for babel class plugin
  • vue-renderer
    • #6429 Dont mutate options.head
  • config
    • #6371 Enable total timing by default when server.timing is enabled
  • config, vue-app
    • #6379 Add module declaration for config and vue-app

🚀 Features

  • cli, config
    • #6399 cli.bannerColor option
  • config
    • #6414 serverMiddleware as a simple key/value object
  • builder
    • #6368 followSymlinks option to allow for symlinks
    • #6285 extendPlugins option and builder:extendPlugins hook
    • #6329 Add builder:prepared hook
    • #6342 Support adding custom middleware
  • cli
    • #6475 Catch build errors with cli:buildError hook
  • webpack
    • #6477 Use vue-meta browser build for client bundle
    • #6398 Upgrade terser-webpack-plugin to v2
    • #6350 Add webpack:config hook
  • server
    • #6438 Add config option to define etag hash function
  • vue-app
    • #6292 Add prefetch prop to <nuxt-link>
    • #6287 Support configurable features
    • #6297 Function watchQuery
  • general
    • #6432 Support setting (non-essential) vue-meta options by user
  • utils
    • #6277 Export sort routes
  • builder, router
    • #6331 Enforce uniform trailing slash handling

💅 Refactors

  • cli
    • #6353 Call setup hook in run command with more args
  • builder
    • #6352 Await build.createRoutes to allow async functions inside it
  • babel-preset-app
    • #6087 Simplify babel preset config

📝 Examples

  • with-sockets
    • #6396 Create server inside the export function

🏡 Chore

  • general
    • Fix example in babel-preset-app readme
    • #6390 Lint vue-app templates
    • #6363 Rename setup hook to run:before

💖 Thanks to

  • Louis-Marie Michelin (@lmichelin)
  • Daniel Roe (@danielroe)
  • Snir Shechter (@SnirShechter)
  • @radimhornicek
  • @xxRockOnxx

v2.9.2

Released on

🐛 Bug Fixes

  • general
    • #6257 Improve watching experience for generated files
  • builder
    • #6283 fix(builder): apply overrides from app dir only
  • server
    • #6265 Treat https: null as https: undefined
  • nuxt-start
    • #6267 Add missing vue-client-only dependency
  • vue-app
    • #6264 Only overwrite leave listener when none provided or without done arg
    • #6255 Enforce default css when used with frameworks
  • config
    • #6258 Provide typescript backward compatibility

💅 Refactors

  • core
    • #6271 Use hable

v2.9.1

Released on

🐛 Bug Fixes

  • vue-app
    • #6252 Provide typescript backward compatibility
  • loading-screen
    • nuxt/loading-screen#38 set Content-Type for index page

📝 Examples

  • CoffeeScript
    • #6248 Update module for using additionalExtensions

💖 Thanks to

  • Artyom Bogomolov (@DevArtyom)
  • Rafał Chłodnicki (@rchl)

v2.9.0

Released on

⚠️ Important Notes

  • 👉 Minimum required node version is 8.9.0
  • 👉 Typescript support is now externalized. Refer to official docs and migration guide.
  • 👉 vue-meta upgraded to 2.0.0. Please refer to the changelog to review notable changes.
  • 👉 scrollBehavior option is deprecated in favor of app/router.scrollBehavior.js (#6055)
  • 👉 devModules option is deprecated in favor of buildModules (#6203)

🐛 Bug Fixes

  • general
    • #6118 Fix modulepreload warnings
    • #6075 Throw error when building failed in quiet mode
    • #6070 Support babel corejs config for modern mode
    • #6021 Babel polyfill can not be disabled
  • renderer
    • #6033 Correctly load nomodule scripts in safari 10
  • cli
    • #6020 Prevent both nuxt & nuxt-edge being installed
  • vue-app
    • #6012 Emit triggerScroll to support hash navigation
    • #5920 Fix font-size and make width bigger
    • #5891 Always finish transition.leave asynchronously
    • #5890 Fix position of the build indicator when page scrolled
  • vue-renderer
    • #6223 Call render:resourcesLoaded hook before createRenderer
    • #5964 Clone SPA meta to prevent cache modification
  • webpack
    • #5906 Extract css breaks hmr and source-maps

🚀 Features

  • cli
    • #6206 Export options
  • server
    • #6178 Allow passing loadingTimeout and other arguments to renderAndGetWindow
  • webpack
    • #6120 Allow function entries for build.transpile
  • vue-app
    • #6194 Add $nuxt.refresh
    • #6186 Use EventSource instead of WebSocket for build indicator
    • #6055 Support app/router.scrollBehavior.js and deprecate scrollBehavior
    • #5941 Add <client-only> alias for <no-ssr>
    • #5844 Allow customizing loading indicator
    • #6194 Add $nuxt.refresh() method or refresh the actual page asyncData and fetch
    • #6231 Export router options
    • #6222 Support functional watchQuery
  • vue-renderer
    • #5975 Add csp option for csp v1 compatibility
    • #6134 Support prepend/append body tags during ssr for all allowed tag types
  • typescript
    • #5858 Externalize typescript support

💅 Refactors

  • config
    • #6203 Rename devModules to buildModules
  • babel-preset-app
    • #6197 Remove babel-plugin-dynamic-import-node
  • webpack
    • #6179 Simplify transpile normalization
  • general

🏡 Chore

  • general
    • #6065 Fix typo
    • #5990 Inverse wording of error message
    • #5910 Update opencollective infos
    • #5869 Rename backers -> nuxters
  • babel-preset-app
    • #5897 Fix typo in babel-preset readme

⚓ Dependency Upgrades

  • file-loader@4
  • url-loader@2
  • cache-loader@4
  • css-loader@3
  • vue-meta@2
  • fs-extra@8

💖 Thanks to

  • 719media (@719media)
  • Anthony Fu (@antfu)
  • Farzad Soltani (@farzadso)
  • François Hodierne (@znarf)
  • Josh Deltener (@hecktarzuli)
  • Rafał Chłodnicki (@rchl)
  • Ricardo Gobbo de Souza (@ricardogobbosouza)
  • Ustun Ozgur (@ustun)
  • William Chong (@williamchong007)
  • bluelovers (@bluelovers)
  • orblazer (@orblazer)
  • yutanoma (@yutanoma)
  • Dzmitry Bachko (@dbachko)

v2.8.1

Released on

🐛 Bug Fixes

  • vue-renderer
    • #5867 Fix exception on property access of undefined object
    • #5863 Prevent "can't set headers after they are sent" error in modern server mode
  • vue-app
    • #5864 Reduce consola direct access and don't override browser console.log
  • cli
    • #5865 Don't mutate options export to prevent ESM regression with nuxt.config in mixed (cjs + esm) mode (TIP: never mix them as is non-standard and may be unsupported in any future version)

💅 Refactors

  • typescript
    • #5854 Prepare for external typescript support

💖 Thanks to

  • Rafał Chłodnicki (@rchl)

v2.8.0

Released on

😎 Developer Experience

  • #5770 Add a group for SSR logs to avoid polluting the browser console
  • #5810 Fancier browser logs with consola

nuxt-ssr-logs-2

  • #5820, #5832, #5834 Show build indicator in the browser when rebuilding code:

nuxt-hmr-indicator

  • #5753 Watch for pages/ creation when default page displayed
  • #5812 Only listen for file changes for supported extensions
  • #5753 Re-use the same port when randomly assigned when restarting in dev mode

🐛 Bug Fixes

  • vue-renderer
    • #5807 Add User-Agent‍ to Vary header in modern server mode
    • #5764 Safe format SSR logs
  • server
    • #5793 Preserve random port when restarting
    • Return listener when calling listen
  • builder
    • #5753 Watch for pages/ creation when default page displayed
    • #2812 Only listen for file changes for supported extensions
  • generator
    • #5791 Minify spa fallback
  • types
    • #5785 Add type definition for functional babel.presets
  • vue-app
    • #5757 Reuse page component with watchQuery
    • #5746 Remove trailing slash in vue-router non-strict mode
    • #5752 Don't attach catch handler to already loaded component
    • #5824 fixPrepatch in-out transition fix (issue #5797)
  • utils
    • #5754 Handle serializeFunction edge case

🚀 Features

  • vue-renderer
    • #5745 Add render.injectScripts option
    • #5784 Support render.ssrLog for controlling SSR logs

💅 Refactors

  • core
    • #5796 Use require.resolve instead of Module internals
  • builder
    • #5792 Pass nuxt options to template as nuxtOptions
  • vue-app
    • #5770 Add a group for SSR logs
    • #5826 simplify mount error log
  • general
    • #5748 Small readability improvements

📝 Examples

  • auth-jwt
    • #5775 Use named store export to prevent warning
  • typescript
    • #5742 Add missing ts-node dependency

🏡 Chore

  • ci
    • #5802 Upload test report to CircleCI and Azure
    • Add flags for codecov
    • Enable audit
  • general
    • Remove unused dependency cross-env
    • Add FUNDING.md
    • Improve links in readme

♻️ Tests

  • general
    • #5790 Add unit tests for core/resolver.js
    • #5782 Remove duplicate unit tests in packages/core/test/resolver

⚓ Dependency upgrades

💖 Thanks to

  • @aaronransley
  • @alexandreDavid
  • @Elevista
  • @utatti
  • @rchl
  • @maunier
  • @cuixiaorui
  • @Globegitter

v2.7.1

Released on

Fixes

  • builder: use warn only for mismatched dependencies (#5723)
  • webpack: correctly resolve consola for the client bundle (#5729)

Dependency Upgrades

  • postcss-import-resolver: prefer style property when resolving (jsless/postcss-import-resolver#2)

Thanks to

  • Blake Kostner (@btkostner)