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
andnode_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
{
buildTarget: isServer ? 'server' : 'client',
corejs: { version: 3 }
}
]
]
}
}
}
}
Typescript
Nuxt 2.5 users may only require to add ts-node
to the dependencies
Beta Testers : Replace
nuxt
bynuxt-edge
, and@nuxt/typescript
by@nuxt/typescript-edge
in the following instructions.
- Remove
nuxt-ts
dependency (2.4 users only)- yarn:
yarn remove nuxt-ts
- npm:
npm remove nuxt-ts
- yarn:
- Add
nuxt
andts-node
todependencies
:- yarn:
yarn add nuxt ts-node
- npm:
npm i nuxt ts-node
- yarn:
- Add
@nuxt/typescript
todevDependencies
:- yarn:
yarn add -D @nuxt/typescript
- npm:
npm i -D @nuxt/typescript
- yarn:
- 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 tonuxt 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
- 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)