nuxt.config
The starting point for your Nuxt app remains your nuxt.config
file.
defineNuxtConfig
function that provides a typed configuration schema.export default { // ...}
router.extendRoutes
you can migrate to the new pages:extend
hook:export default { router: { extendRoutes (routes) { // } }}
Nuxt 3 is an ESM native framework. Although unjs/jiti
provides semi compatibility when loading nuxt.config
file, avoid any usage of require
and module.exports
in this file.
module.exports
to export default
const lib = require('lib')
to import lib from 'lib'
In order to make Nuxt loading behavior more predictable, async config syntax is deprecated. Consider using Nuxt hooks for async operations.
Nuxt has built-in support for loading .env
files. Avoid directly importing it from nuxt.config
.
Nuxt and Nuxt Modules are now build-time-only.
buildModules
into modules
.It will be much easier to migrate your application if you use Nuxt's TypeScript integration. This does not mean you need to write your application in TypeScript, just that Nuxt will provide automatic type hints for your editor.
You can read more about Nuxt's TypeScript support in the docs.
vue-tsc
with nuxi typecheck
command.tsconfig.json
with the following content:{ "extends": "./.nuxt/tsconfig.json"}
npx nuxi prepare
to generate .nuxt/tsconfig.json
.There are a number of changes to what is recommended Vue best practice, as well as a number of breaking changes between Vue 2 and 3.
It is recommended to read the Vue 3 migration guide and in particular the breaking changes list.
It is not currently possible to use the Vue 3 migration build with Nuxt 3 RC.
Nuxt no longer provides a Vuex integration. Instead, the official Vue recommendation is to use pinia
, which has built-in Nuxt support via a Nuxt module. Find out more about pinia here.
If you want to keep using Vuex, you can manually migrate to Vuex 4 following these steps.