Skip to content

@pi0 pi0 released this Apr 4, 2019 · 58 commits to dev since this release

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.

Reverting breaking changes

We accidentially introduced a change that broke the prod build for many people who are using Nuxt programatically. This has been resolved through #5413. Sorry for the inconveniences!

Core-js

Since core-js@2 and core-js@3 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 core-js@2 are not required but recommended)

core-js@2

  • yarn: yarn add -D core-js@2 @babel/runtime-corejs2
  • npm: npm i -D core-js@2 @babel/runtime-corejs2

core-js@3

  • yarn: yarn add -D core-js@3 @babel/runtime-corejs3
  • npm: npm i -D core-js@3 @babel/runtime-corejs3

Edit nuxt.config.js:

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

Typescript

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

Features

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

Fixes

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

Refactors

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

Examples

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

Chore

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

Dependency Upgrades

Assets 2
You can’t perform that action at this time.