Released a year ago

Migration Guide

This version is addressing most of the problems of 2.5 and is without any breaking changes. For most of the users, a normal version upgrade would be enough. However, reading this guide can help to have a smooth upgrade.

General Tips

  • Using yarn as the package manager is more preferred as Nuxt is internally being tested against yarn
  • Before upgrade ensure to remove yarn.lock, package-lock.json and node_modules
  • After full install and testing, also consider upgrading other dependencies. The yarn outdated command can be used.

Missing App Dependencies

Because of how package managers (yarn, npm) work, a wrong version of a dependency from one of the other dependencies may be hoisted into node_modules. Nuxt is strict about this and provides instructions for dependency resolution so please follow it.

The well-known problem is with firebase package that requires to manually install node-fetch dependency in your project.


Since [email protected] and [email protected] are both supported from babel 7.4.0, Starting from 2.6 Nuxt supports both versions (#5411). It is highly advised to stick with 2 (default) unless having a special dependency that needs 3. (Instructions for [email protected] are not required but recommended)

[email protected]

[email protected]

Edit nuxt.config.js:

export default {
  build: {
    babel: {
      presets({ isServer }) {
        return [
            // require.resolve('@nuxt/babel-preset-app-edge'), // For nuxt-edge users
              targets: isServer ? { node: '10' } : { ie: '11' },
              corejs: { version: 3 }


Nuxt 2.5 users may only require to add ts-node to the dependencies

Beta Testers : Replace nuxt by nuxt-edge, and @nuxt/typescript by @nuxt/typescript-edge in the following instructions.

  1. Remove nuxt-ts dependency (2.4 users only)
    • yarn: yarn remove nuxt-ts
    • npm: npm remove nuxt-ts
  2. Add nuxt and ts-node to dependencies:
    • yarn: yarn add nuxt ts-node
    • npm: npm i nuxt ts-node
  3. Add @nuxt/typescript to devDependencies:
    • yarn: yarn add -D @nuxt/typescript
    • npm: npm i -D @nuxt/typescript
  4. Create an empty tsconfig.json file. Nuxt will automatically generate it with defaults at first run, then you can edit it to fit your needs


  • feat(babel-preset-app): support specifying core-js version (#5411) (Xin Du (Clark)) (159123fe)
  • feat(cli): add internal _generate and _build options (#5434) (Pooya Parsa) (516aea3d)
  • feat(cli): add --quiet option to nuxt generate command (#5357) (Franck Abgrall) (91f4eb04)
  • feat(typescript): detect typescript based on tsconfig.json (#5412) (Pooya Parsa) (6ffc5c57)
  • feat(vue-renderer): add csp meta tags (#5354) (James George) (b978a376)


  • fix: unexpected token export in importing babel runtime helper (#5401) (ryota yamamoto) (3b85dd97)
  • fix(core): call ready to prevent breaking changes (Pooya Parsa) (#5413) (001ba775)
  • fix(build): disable loading babel.config.js by default (#5365) (Xin Du (Clark)) (64fa4244)
  • fix(builder): await for renderer to load resources (#5341) (Pooya Parsa) (caf51984)
  • fix(cli): catch all possible errors thrown from proper-filelock (#5347) (Pim) (39bbe46e)
  • fix(renderer): retry render if renderer is in loading or created state (#5417) (Pooya Parsa) (8b996959)
  • fix(vue-app): decode uri in getlocation (#5337) (Johan Roxendal) (77dcfe6e)
  • fix(vue-app): prevent mounting page twice on redirect (#5361) (noe132) (2d73e8ae)
  • fix(vue-renderer): add the csp hash if unsafe-inline hasn't been specified (#5387) (Sam Bowler) (97db6a4b)
  • fix(types): add type definition for typescript.typeCheck (#5326) (Daniel Roe) (2c1444d9)


  • refactor(typescript): only generate tsconfig.json if missing (#5356) (#5367) (Kevin Marrec) (9a3fc8a4)
  • refactor(vue-renderer): improve ready status error (#5339) (Pooya Parsa) (535327c4)
  • refactor(webpack): add ability to get webpack config class (#5378) (Damian Stasik) (abf7db1f)


  • examples: add docker example (#5430) (Utkarsh Gupta) (3eec1152)
  • examples(vue-apollo): update to @nuxtjs/apollo 4.x (#5345) (Dmitry Molotkov) (95f2a125)
  • examples(with-buefy): update example (#5348) (Dmitry Molotkov) (ce66a8cb)
  • examples(with-element-ui): fix package scripts (#5349) (Dmitry Molotkov) (10812e30)


  • chore(postcss): deprecate config support (#5419) (Alexander Lichter) (1bd4fb14)
  • chore(readme): fix grammar (#5395) (Irvin Lin) (f8d3626c)

Dependency Upgrades

  • loading-screen: use wss for https (nuxt/loading-screen#4)
  • loading-screen: fallback to fetch if ws fails (nuxt/loading-screen#6)
  • node-proper-lockfile: - fix mtime precision on some filesystems (#​88) (f266158), closes #​82 #​87