Конфигурация Nuxt
alias
Дополнительные алиасы для доступа к своим директориям из JavaScript и CSS улучшают опыт разработки.
- Тип:
object - По умолчанию
{
"~": "/<rootDir>/app",
"@": "/<rootDir>/app",
"~~": "/<rootDir>",
"@@": "/<rootDir>",
"#shared": "/<rootDir>/shared",
"#server": "/<rootDir>/server",
"assets": "/<rootDir>/app/assets",
"public": "/<rootDir>/public",
"#build": "/<rootDir>/.nuxt",
"#internal/nuxt/paths": "/<rootDir>/.nuxt/paths.mjs"
}
~..nuxt/tsconfig.app.json, .nuxt/tsconfig.server.json и т.д.) для поддержки типов и автодополнения путей. Чтобы расширить опции сгенерированных конфигов, добавьте их здесь или в typescript.tsConfig в nuxt.config.Пример:
import { fileURLToPath } from 'node:url'
export default defineNuxtConfig({
alias: {
'images': fileURLToPath(new URL('./assets/images', import.meta.url)),
'style': fileURLToPath(new URL('./assets/style', import.meta.url)),
'data': fileURLToPath(new URL('./assets/other/data', import.meta.url)),
},
})
<template>
<img src="~images/main-bg.jpg">
</template>
<script>
import data from 'data/test.json'
</script>
<style>
// Uncomment the below
//@import '~style/variables.scss';
//@import '~style/utils.scss';
//@import '~style/base.scss';
body {
background-image: url('~images/main-bg.jpg');
}
</style>
analyzeDir
Директория, в которую Nuxt сохраняет сгенерированные файлы при запуске nuxt analyze.
При относительном пути он задаётся относительно rootDir.
- Тип:
string - По умолчанию:
"/<rootDir>/.nuxt/analyze"
app
Конфигурация приложения Nuxt.
baseURL
Базовый путь приложения Nuxt.
Например:
- Тип:
string - По умолчанию:
"/"
Пример:
export default defineNuxtConfig({
app: {
baseURL: '/prefix/',
},
})
Можно также задать в runtime переменной окружения NUXT_APP_BASE_URL.
Пример:
NUXT_APP_BASE_URL=/prefix/ node .output/server/index.mjs
buildAssetsDir
Имя папки собранных ресурсов сайта относительно baseURL (или cdnURL, если задан). Задаётся при сборке, в runtime менять не рекомендуется.
- Тип:
string - По умолчанию:
"/_nuxt/"
cdnURL
Абсолютный URL для раздачи папки public (только production).
Например:
- Тип:
string - По умолчанию:
""
Пример:
export default defineNuxtConfig({
app: {
cdnURL: 'https://mycdn.org/',
},
})
В runtime можно задать через переменную окружения NUXT_APP_CDN_URL.
Пример:
NUXT_APP_CDN_URL=https://mycdn.org/ node .output/server/index.mjs
head
Конфигурация по умолчанию для <head> на каждой странице.
- Тип:
object - По умолчанию
{
"meta": [
{
"name": "viewport",
"content": "width=device-width, initial-scale=1"
},
{
"charset": "utf-8"
}
],
"link": [],
"style": [],
"script": [],
"noscript": []
}
Пример:
export default defineNuxtConfig({
app: {
head: {
meta: [
// <meta name="viewport" content="width=device-width, initial-scale=1">
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
],
script: [
// <script src="https://myawesome-lib.js"></script>
{ src: 'https://awesome-lib.js' },
],
link: [
// <link rel="stylesheet" href="https://myawesome-lib.css">
{ rel: 'stylesheet', href: 'https://awesome-lib.css' },
],
// примечание: эта область может измениться
style: [
// <style>:root { color: red }</style>
{ textContent: ':root { color: red }' },
],
noscript: [
// <noscript>JavaScript is required</noscript>
{ textContent: 'JavaScript is required' },
],
},
},
})
keepalive
Значения по умолчанию для настройки KeepAlive между страницами.
Можно переопределить через definePageMeta на отдельной странице. Допускаются только JSON-сериализуемые значения.
- Тип:
boolean - По умолчанию:
false
См.: Vue KeepAlive
layoutTransition
Значения по умолчанию для переходов между макетами.
Можно переопределить через definePageMeta на отдельной странице. Допускаются только JSON-сериализуемые значения.
- Тип:
boolean | TransitionProps - По умолчанию:
false
См.: Vue Transition docs
pageTransition
Значения по умолчанию для переходов между страницами.
Можно переопределить через definePageMeta на отдельной странице. Допускаются только JSON-сериализуемые значения.
- Тип:
boolean | TransitionProps - По умолчанию:
false
См.: Vue Transition docs
rootAttrs
Идентификатор корневого элемента Nuxt.
- Тип:
object - По умолчанию
{
"id": "__nuxt"
}
rootId
Идентификатор корневого элемента Nuxt.
- Тип:
string - По умолчанию:
"__nuxt"
rootTag
Тег корневого элемента Nuxt.
- Тип:
string - По умолчанию:
"div"
spaLoaderAttrs
Атрибуты элемента шаблона загрузки SPA.
- Тип:
object - По умолчанию:
{
"id": "__nuxt-loader"
}
id
- Тип:
string - По умолчанию:
"__nuxt-loader"
spaLoaderTag
Тег элемента SpaLoader.
- Тип:
string - По умолчанию:
"div"
teleportAttrs
Атрибуты элемента Nuxt Teleport.
- Тип:
object - По умолчанию
{
"id": "teleports"
}
teleportId
Идентификатор элемента Nuxt Teleport.
- Тип:
string - По умолчанию:
"teleports"
teleportTag
Тег элемента Nuxt Teleport.
- Тип:
string - По умолчанию:
"div"
viewTransition
Значения по умолчанию для view transitions.
Действует только при включённой в nuxt.config поддержке experimental View Transitions.
Можно переопределить через definePageMeta на отдельной странице.
- Тип:
boolean - По умолчанию:
false
См.: Nuxt View Transition API docs
appConfig
Дополнительная конфигурация приложения.
Для программного доступа и поддержки типов можно задать app config этой опцией. Значения сольются с файлом app.config как значения по умолчанию.
nuxt
appId
Для мульти-приложений — уникальный идентификатор приложения Nuxt.
По умолчанию: nuxt-app.
- Тип:
string - По умолчанию:
"nuxt-app"
build
Общая конфигурация сборки.
analyze
Визуализация бандлов и подсказки по оптимизации.
Установите true для включения анализа бандлов или передайте объект с опциями: для webpack или для vite.
- Тип:
object - По умолчанию
{
"template": "treemap",
"projectRoot": "/<rootDir>",
"filename": "/<rootDir>/.nuxt/analyze/{name}.html"
}
Пример:
export default defineNuxtConfig({
analyze: {
analyzerMode: 'static',
},
})
templates
Рекомендуется использовать addTemplate из @nuxt/kit вместо этой опции.
- Тип:
array
Пример:
export default defineNuxtConfig({
build: {
templates: [
{
src: '~~/modules/support/plugin.js', // `src` can be absolute or relative
dst: 'support.js', // `dst` is relative to project `.nuxt` dir
},
],
},
})
transpile
Зависимости для транспиляции через Babel. Элементом может быть имя пакета, функция, строка или regex по имени файла зависимости.
Можно передать функцию для условной транспиляции; она получит объект ({ isDev, isServer, isClient, isModern, isLegacy }).
- Тип:
array
Пример:
export default defineNuxtConfig({
build: {
transpile: [({ isLegacy }) => isLegacy && 'ky'],
},
})
buildDir
Каталог, куда помещаются собранные файлы Nuxt.
Многие инструменты считают .nuxt скрытым каталогом (из-за точки в начале). При необходимости эту опцию можно использовать, чтобы изменить имя.
- Тип:
string - По умолчанию:
"/<rootDir>/.nuxt"
Пример:
export default defineNuxtConfig({
buildDir: 'nuxt-build',
})
buildId
Уникальный идентификатор сборки. Может содержать хеш текущего состояния проекта.
- Тип:
string - По умолчанию:
"4a2e2d30-418f-41df-8e58-ed5df06de7fd"
builder
Сборщик для бандлинга Vue-части приложения.
Nuxt поддерживает несколько сборщиков для клиента. По умолчанию используется Vite; можно переключиться на webpack, Rspack или указать свой сборщик.
- Тип:
'vite' | 'webpack' | 'rspack' | string | { bundle: (nuxt: Nuxt) => Promise<void> } - По умолчанию:
"@nuxt/vite-builder"
Поддерживаемые сборщики:
export default defineNuxtConfig({
// default - uses @nuxt/vite-builder
// builder: 'vite',
// uses @nuxt/webpack-builder
// builder: 'webpack',
// uses @nuxt/rspack-builder
builder: 'rspack',
})
При использовании webpack или rspack нужно явно установить в проекте @nuxt/webpack-builder или @nuxt/rspack-builder.
Кастомный сборщик (объект):
Можно передать объект с функцией bundle:
export default defineNuxtConfig({
builder: {
async bundle (nuxt) {
const entry = await resolvePath(resolve(nuxt.options.appDir, 'entry'))
// Build client and server bundles
await buildClient(nuxt, entry)
if (nuxt.options.ssr) {
await buildServer(nuxt, entry)
}
// ... it's a bit more complicated than that, of course!
},
},
})
Кастомный сборщик (пакет):
Пакет должен экспортировать функцию bundle. Имя пакета можно указать в nuxt.config.ts:
export default defineNuxtConfig({
builder: 'my-custom-builder',
})
compatibilityDate
Дата совместимости для приложения.
Используется для управления поведением пресетов в Nitro, Nuxt Image и других модулях, которые могут менять поведение без мажорного обновления. В будущем планируется улучшить инструментарий для этой опции.
components
Настройка авторегистрации компонентов Nuxt.
Компоненты из указанных каталогов можно использовать на страницах, в макетах и других компонентах без явного импорта.
- Тип:
object - По умолчанию
{
"dirs": [
{
"path": "~/components/global",
"global": true
},
"~/components"
]
}
См.: app/components/ directory documentation
css
Глобальные CSS-файлы, модули или библиотеки (подключаются на каждой странице).
Nuxt определит тип по расширению и подключит нужный препроцессор. При необходимости установите соответствующий лоадер.
- Тип:
array
Пример:
export default defineNuxtConfig({
css: [
// Подключить Node.js-модуль напрямую (здесь — Sass).
'bulma',
// CSS file in the project
'~/assets/css/main.css',
// SCSS file in the project
'~/assets/css/main.scss',
],
})
debug
Включить режим отладки (true).
Сейчас выводит имена и время хуков на сервере и логирует аргументы хуков в браузере. Можно передать объект для включения отдельных опций отладки.
- Тип:
boolean - По умолчанию:
false
dev
Режим разработки Nuxt.
Обычно задавать вручную не требуется.
- Тип:
boolean - По умолчанию:
false
devServer
cors
Опции CORS для dev-сервера
origin
- Тип:
array - По умолчанию
[
{}
]
host
Хост dev-сервера
https
Включить HTTPS.
- Тип:
boolean - По умолчанию:
false
Пример:
export default defineNuxtConfig({
devServer: {
https: {
key: './server.key',
cert: './server.crt',
},
},
})
loadingTemplate
Шаблон экрана загрузки
- Тип:
function
port
Порт dev-сервера
- Тип:
number - По умолчанию:
3000
url
URL dev-сервера.
Задавать вручную не нужно — он подставляется сервером (для модулей и внутреннего использования).
- Тип:
string - По умолчанию:
"http://localhost:3000"
devServerHandlers
Обработчики сервера Nitro только для режима разработки.
- Тип:
array
См.: Nitro server routes documentation
devtools
Включить Nuxt DevTools в режиме разработки.
Breaking changes в devtools могут не совпадать с версией Nuxt.
См.: Nuxt DevTools для дополнительной информации.
dir
Настройка структуры каталогов по умолчанию.
Лучше оставлять значения по умолчанию, если нет особой необходимости.
app
- Тип:
string - По умолчанию:
"app"
assets
Каталог ресурсов (алиас ~assets в сборке).
- Тип:
string - По умолчанию:
"app/assets"
layouts
Каталог макетов; каждый файл автоматически регистрируется как макет Nuxt.
- Тип:
string - По умолчанию:
"app/layouts"
middleware
Каталог middleware; каждый файл автоматически регистрируется как middleware Nuxt.
- Тип:
string - По умолчанию:
"app/middleware"
modules
Каталог модулей; каждый файл автоматически регистрируется как модуль Nuxt.
- Тип:
string - По умолчанию:
"modules"
pages
Каталог, из которого генерируются маршруты страниц приложения.
- Тип:
string - По умолчанию:
"app/pages"
plugins
Каталог плагинов; каждый файл автоматически регистрируется как плагин Nuxt.
- Тип:
string - По умолчанию:
"app/plugins"
public
Каталог статических файлов; доступен через сервер Nuxt и копируется в dist при сборке.
- Тип:
string - По умолчанию:
"public"
shared
Общий каталог для приложения и сервера.
- Тип:
string - По умолчанию:
"shared"
esbuild
options
Общие опции esbuild для Nuxt и для других сборщиков (Vite, webpack).
jsxFactory
- Тип:
string - По умолчанию:
"h"
jsxFragment
- Тип:
string - По умолчанию:
"Fragment"
target
- Тип:
string - По умолчанию:
"esnext"
tsconfigRaw
- Тип:
object
experimental
extends
Расширение проекта из нескольких локальных или удалённых источников.
Значение — строка или массив строк (пути к каталогам или конфигам относительно текущего).
Поддерживаются префиксы: github:, gh:, gitlab:, bitbucket:.
См.: c12 docs on extending config layers
См.: giget documentation
extensions
Расширения файлов, разрешаемые резолвером Nuxt.
- Тип:
array - По умолчанию
[
".js",
".jsx",
".mjs",
".ts",
".tsx",
".vue"
]
features
future
hooks
Хуки — подписчики на события Nuxt; обычно используются в модулях, доступны и в nuxt.config.
Имена хуков задаются через двоеточие (например, build:done). В конфиге их можно описать иерархическим объектом (см. пример ниже).
Пример:
import fs from 'node:fs'
import path from 'node:path'
export default defineNuxtConfig({
hooks: {
build: {
done (builder) {
const extraFilePath = path.join(
builder.nuxt.options.buildDir,
'extra-file',
)
fs.writeFileSync(extraFilePath, 'Something extra')
},
},
},
})
ignore
Гибче, чем ignorePrefix: при сборке игнорируются все файлы, подходящие под glob-паттерны из массива ignore.
- Тип:
array - По умолчанию
[
"**/*.stories.{js,cts,mts,ts,jsx,tsx}",
"**/*.{spec,test}.{js,cts,mts,ts,jsx,tsx}",
"**/*.d.{cts,mts,ts}",
"**/*.d.vue.{cts,mts,ts}",
"**/.{pnpm-store,vercel,netlify,output,git,cache,data}",
"**/*.sock",
".nuxt/analyze",
".nuxt",
"**/-*.*"
]
ignoreOptions
Опции, передаваемые в node-ignore (Nuxt использует его для игнорирования файлов).
См.: node-ignore
Пример:
export default defineNuxtConfig({
ignoreOptions: {
ignorecase: false,
},
})
ignorePrefix
Файлы в app/pages/, app/layouts/, app/middleware/ и public/, чьи имена начинаются с указанного префикса, при сборке игнорируются. По умолчанию префикс -, игнорируются файлы, начинающиеся с -.
- Тип:
string - По умолчанию:
"-"
imports
Настройка автоимпорта композаблов в приложение.
См.: Nuxt documentation
dirs
Массив кастомных директорий для автоимпорта. Эта опция не переопределяет стандартные директории (~/composables, ~/utils).
- Тип:
array
Пример:
export default defineNuxtConfig({
imports: {
// Auto-import pinia stores defined in `~/stores`
dirs: ['stores'],
},
})
global
- Тип:
boolean - По умолчанию:
false
scan
Сканировать ли каталоги app/composables/ и app/utils/ для автоимпорта. Импорты от Nuxt и модулей (например, из vue или nuxt) остаются включёнными.
- Тип:
boolean - По умолчанию:
true
logLevel
Уровень логирования при сборке.
В CI или при отсутствии TTY по умолчанию используется 'silent'; в Vite передаётся как 'silent', в webpack — как 'none'.
- Тип:
string - По умолчанию:
"info"
modules
Модули — расширения Nuxt, добавляющие функциональность и интеграции.
Элемент массива: строка (имя пакета или путь к файлу), кортеж модуль, опции или функция модуля.
Nuxt разрешает элементы через node (из node_modules), при алиасе ~~ — относительно rootDir.
- Тип:
array
nuxt.config.ts, затем из каталога modules/ в алфавитном порядке.Пример:
export default defineNuxtConfig({
modules: [
// Using package name
'@nuxt/scripts',
// Relative to your project rootDir
'~~/custom-modules/awesome.js',
// Providing options
['@nuxtjs/google-analytics', { ua: 'X1234567' }],
// Inline definition
function () {},
],
})
modulesDir
Каталоги для разрешения путей модулей (например, для webpack: resolveLoading, nodeExternals, postcss).
Путь задаётся относительно options.rootDir (по умолчанию — текущий рабочий каталог).
Полезно в монорепозиториях в стиле yarn workspace.
- Тип:
array - По умолчанию
[
"/<rootDir>/node_modules"
]
Пример:
export default defineNuxtConfig({
modulesDir: ['../../node_modules'],
})
nitro
Конфигурация Nitro.
routeRules
- Тип:
object
runtimeConfig
- Тип:
object - По умолчанию
{
"public": {},
"app": {
"buildId": "4a2e2d30-418f-41df-8e58-ed5df06de7fd",
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
},
"nitro": {
"envPrefix": "NUXT_"
}
}
optimization
Настройки оптимизации на этапе сборки.
asyncTransforms
Опции трансформера из unctx, сохраняющего async-контекст после await.
asyncFunctions
- Тип:
array - По умолчанию
[
"defineNuxtPlugin",
"defineNuxtRouteMiddleware"
]
objectDefinitions
defineNuxtComponent
- Тип:
array - По умолчанию
[
"asyncData",
"setup"
]
defineNuxtPlugin
- Тип:
array - По умолчанию
[
"setup"
]
definePageMeta
- Тип:
array - По умолчанию
[
"middleware",
"validate"
]
keyedComposables
Функции, для которых внедряется ключ.
Если аргументов меньше argumentLength, последним аргументом подставляется «магическая» строка. Ключ стабилен между SSR и гидрацией на клиенте; нужно учитывать этот дополнительный аргумент.
Ключ уникален в зависимости от места вызова в файле.
- Тип:
array - По умолчанию
[
{
"name": "callOnce",
"argumentLength": 3,
"source": "#app/composables/once"
},
{
"name": "defineNuxtComponent",
"argumentLength": 2,
"source": "#app/composables/component"
},
{
"name": "useState",
"argumentLength": 2,
"source": "#app/composables/state"
},
{
"name": "useFetch",
"argumentLength": 3,
"source": "#app/composables/fetch"
},
{
"name": "useAsyncData",
"argumentLength": 3,
"source": "#app/composables/asyncData"
},
{
"name": "useLazyAsyncData",
"argumentLength": 3,
"source": "#app/composables/asyncData"
},
{
"name": "useLazyFetch",
"argumentLength": 3,
"source": "#app/composables/fetch"
}
]
treeShake
Исключение кода из отдельных сборок (tree-shake).
composables
Исключение композаблов из серверной или клиентской сборки.
Пример:
export default defineNuxtConfig({
optimization: {
treeShake: {
composables: {
client: { vue: ['onMounted'] },
server: { vue: ['onServerPrefetch'] },
},
},
},
})
client
- Тип:
object - По умолчанию
{
"vue": [
"onRenderTracked",
"onRenderTriggered",
"onServerPrefetch"
],
"#app": [
"definePayloadReducer",
"definePageMeta",
"onPrehydrate"
]
}
server
- Тип:
object - По умолчанию
{
"vue": [
"onMounted",
"onUpdated",
"onUnmounted",
"onBeforeMount",
"onBeforeUpdate",
"onBeforeUnmount",
"onRenderTracked",
"onRenderTriggered",
"onActivated",
"onDeactivated"
],
"#app": [
"definePayloadReviver",
"definePageMeta"
]
}
pages
Включить ли интеграцию vue-router. Если не задано, включается при наличии каталога app/pages/.
Можно указать glob или массив паттернов для сканирования только нужных файлов как страниц.
Пример:
export default defineNuxtConfig({
pages: {
pattern: ['**/*/*.vue', '!**/*.spec.*'],
},
})
plugins
Массив плагинов приложения Nuxt.
Элемент: строка (абсолютный или относительный путь). Суффиксы .client или .server — загрузка только в соответствующем контексте.
Либо объект с полями src и mode.
- Тип:
array
~/plugins регистрируются автоматически; перечислять их в nuxt.config не обязательно, если не нужно задать порядок. Дубликаты устраняются по пути src.См.: app/plugins/ directory documentation
Пример:
export default defineNuxtConfig({
plugins: [
'~/custom-plugins/foo.client.js', // only in client side
'~/custom-plugins/bar.server.js', // only in server side
'~/custom-plugins/baz.js', // both client & server
{ src: '~/custom-plugins/both-sides.js' },
{ src: '~/custom-plugins/client-only.js', mode: 'client' }, // only on client side
{ src: '~/custom-plugins/server-only.js', mode: 'server' }, // only on server side
],
})
postcss
order
Стратегия порядка подключения плагинов PostCSS.
- Тип:
function
plugins
Настройка плагинов PostCSS.
См.: PostCSS docs
autoprefixer
Плагин для разбора CSS и добавления вендорных префиксов.
См.: autoprefixer
cssnano
- Тип:
object
См.: cssnano configuration options
rootDir
Корневой каталог приложения.
Переопределяется, например, при запуске nuxt ./my-app/ (абсолютный путь от текущего каталога).
Обычно задавать не требуется.
- Тип:
string - По умолчанию:
"/<rootDir>"
routeRules
Глобальные опции маршрутов для подходящих серверных маршрутов.
Экспериментально: API может измениться в будущем.
См.: Nitro route rules documentation
router
options
Дополнительные опции для vue-router. Помимо опций vue-router, Nuxt добавляет свои (см. ниже).
router.options.ts.hashMode
Режим hash для SPA: в URL перед путём ставится #. URL не отправляется на сервер, SSR не поддерживается.
- Тип:
boolean - По умолчанию:
false
scrollBehaviorType
Поведение прокрутки при переходе по hash-ссылкам.
- Тип:
string - По умолчанию:
"auto"
runtimeConfig
Динамическая конфигурация и переменные окружения для контекста приложения Nuxt.
Доступ на сервере — через useRuntimeConfig. Обычно здесь хранят приватные данные (например, секреты API), не доступные на фронте.
Всё в public и app доступно и на клиенте.
Значения подставляются из переменных окружения в runtime (например, NUXT_API_KEY=my-api-key NUXT_PUBLIC_BASE_URL=/foo/ перезапишет соответствующие поля).
- Тип:
object - По умолчанию
{
"public": {},
"app": {
"buildId": "4a2e2d30-418f-41df-8e58-ed5df06de7fd",
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
}
}
Пример:
export default defineNuxtConfig({
runtimeConfig: {
apiKey: '', // по умолчанию пустая строка, задаётся в runtime из process.env.NUXT_API_KEY
public: {
baseURL: '', // доступно и на фронте
},
},
})
server
Конфигурация серверного сборщика Nuxt.
builder
Сборщик для серверной части приложения.
По умолчанию Nuxt использует @nuxt/nitro-server (standalone Nitro). Возможны и другие схемы, например Nitro как плагин Vite (Vite Environment API).
- Тип:
string | { bundle: (nuxt: Nuxt) => Promise<void> } - По умолчанию:
"@nuxt/nitro-server"
serverDir
Каталог сервера Nuxt: маршруты Nitro, middleware и плагины.
Относительный путь задаётся от rootDir.
- Тип:
string - По умолчанию:
"/<rootDir>/server"
serverHandlers
Обработчики сервера Nitro.
Опции каждого обработчика: handler — путь к файлу; route — маршрут (rou3); method — HTTP-метод; middleware — является ли middleware; lazy — ленивая загрузка.
- Тип:
array
См.: server/ directory documentation
server/api, server/middleware и server/routes регистрируются Nuxt автоматически.Пример:
export default defineNuxtConfig({
serverHandlers: [
{ route: '/path/foo/**:name', handler: '#server/foohandler.ts' },
],
})
sourcemap
Генерация sourcemap для серверной и/или клиентской сборки.
Один boolean применяется к обеим. Доступно значение 'hidden' для обеих сторон.
Варианты: true — генерировать sourcemap и включать ссылки в бандл; false — не генерировать; 'hidden' — генерировать без ссылок в бандле.
- Тип:
object - По умолчанию
{
"server": true,
"client": false
}
spaLoadingTemplate
Boolean или путь к HTML-файлу, содержимое которого подставляется в страницы при ssr: false.
- If it is unset, it will use
~/spa-loading-template.htmlfile in one of your layers, if it exists. - If it is false, no SPA loading indicator will be loaded. - If true, Nuxt will look for~/spa-loading-template.htmlfile in one of your layers, or a default Nuxt image will be used. Примеры спиннеров: SpinKit, SVG Spinners. - По умолчанию:
null
Пример: ~/spa-loading-template.html
<!-- https://github.com/barelyhuman/snips/blob/dev/pages/css-loader.md -->
<div class="loader"></div>
<style>
.loader {
display: block;
position: fixed;
z-index: 1031;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: #000;
border-left-color: #000;
border-bottom-color: #efefef;
border-right-color: #efefef;
border-radius: 50%;
-webkit-animation: loader 400ms linear infinite;
animation: loader 400ms linear infinite;
}
@-webkit-keyframes loader {
0% {
-webkit-transform: translate(-50%, -50%) rotate(0deg);
}
100% {
-webkit-transform: translate(-50%, -50%) rotate(360deg);
}
}
@keyframes loader {
0% {
transform: translate(-50%, -50%) rotate(0deg);
}
100% {
transform: translate(-50%, -50%) rotate(360deg);
}
}
</style>
srcDir
Исходный каталог приложения Nuxt.
Относительный путь задаётся от rootDir.
- Тип:
string - По умолчанию:
"app"(Nuxt 4),"."(Nuxt 3 withcompatibilityMode: 3)
Пример:
export default defineNuxtConfig({
srcDir: 'app/',
})
This expects the following folder structure:
-| app/
---| assets/
---| components/
---| composables/
---| layouts/
---| middleware/
---| pages/
---| plugins/
---| utils/
---| app.config.ts
---| app.vue
---| error.vue
-| server/
-| shared/
-| public/
-| modules/
-| layers/
-| nuxt.config.ts
-| package.json
ssr
Включить ли рендер HTML (динамически на сервере или при генерации). При false сгенерированные страницы будут пустыми.
- Тип:
boolean - По умолчанию:
true
telemetry
Отключить телеметрию Nuxt.
См.: Nuxt Telemetry для дополнительной информации.
test
Приложение запущено в режиме модульных тестов.
- Тип:
boolean - По умолчанию:
false
theme
Расширение проекта из локального или удалённого источника.
Строка — путь к каталогу или конфигу относительно текущего. Префиксы: github:, gitlab:, bitbucket:, https: для удалённого репозитория.
- Тип:
string
typescript
Настройка интеграции TypeScript в Nuxt.
builder
Какие типы сборщика подключать.
По умолчанию Nuxt определяет по опции builder ('vite'). Можно отключить (false) и задать типы самим или выбрать 'shared'.
'shared' удобен авторам модулей, поддерживающим несколько сборщиков.
- По умолчанию:
null
hoist
Модули, для которых генерировать глубокие алиасы в compilerOptions.paths. Подпути пока не поддерживаются. Может понадобиться в pnpm-монорепозитории с shamefully-hoist=false.
- Тип:
array - По умолчанию
[
"nitropack/types",
"nitropack/runtime",
"nitropack",
"defu",
"h3",
"consola",
"ofetch",
"@unhead/vue",
"@nuxt/devtools",
"vue",
"@vue/runtime-core",
"@vue/compiler-sfc",
"vue-router",
"vue-router/auto-routes",
"unplugin-vue-router/client",
"@nuxt/schema",
"nuxt"
]
includeWorkspace
Включить родительский workspace в проект Nuxt. Полезно для тем и авторов модулей.
- Тип:
boolean - По умолчанию:
false
shim
Генерировать shim для *.vue.
Рекомендуется использовать официальное расширение Vue для точных типов компонентов.
Имеет смысл установить true, если вы используете другие инструменты (например, ESLint), не понимающие типы в .vue файлах.
- Тип:
boolean - По умолчанию:
false
strict
TypeScript comes with certain checks to give you more safety and analysis of your program. Once you’ve converted your codebase to TypeScript, you can start enabling these checks for greater safety. Read More
- Тип:
boolean - По умолчанию:
true
tsConfig
Расширение сгенерированных конфигов TypeScript (.nuxt/tsconfig.app.json, .nuxt/tsconfig.server.json и т.д.).
typeCheck
Проверка типов при сборке.
При true проверка и в dev. Ограничить только сборкой можно значением build. Нужны dev-зависимости typescript и vue-tsc.
- Тип:
boolean - По умолчанию:
false
См.: Nuxt TypeScript docs
unhead
Объект конфигурации модуля unhead для Nuxt.
legacy
Enable the legacy compatibility mode for unhead module. This applies the following changes: - Disables Capo.js sorting - Adds the DeprecationsPlugin: supports hid, vmid, children, body - Adds the PromisesPlugin: supports promises as input
- Тип:
boolean - По умолчанию:
false
См.: unhead migration documentation
Пример:
export default defineNuxtConfig({
unhead: {
legacy: true,
},
})
renderSSRHeadOptions
Объект, передаваемый в renderSSRHead для настройки вывода.
- Тип:
object - По умолчанию
{
"omitLineBreaks": false
}
Пример:
export default defineNuxtConfig({
unhead: {
renderSSRHeadOptions: {
omitLineBreaks: true,
},
},
})
vite
Конфигурация, передаваемая напрямую в Vite.
См.: Vite configuration docs для дополнительной информации. Не все опции Vite поддерживаются в Nuxt.
build
assetsDir
- Тип:
string - По умолчанию:
"_nuxt/"
emptyOutDir
- Тип:
boolean - По умолчанию:
false
cacheDir
- Тип:
string - По умолчанию:
"/<rootDir>/node_modules/.cache/vite"
clearScreen
- Тип:
boolean - По умолчанию:
true
define
- Тип:
object - По умолчанию
{
"__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": false,
"process.dev": false,
"import.meta.dev": false,
"process.test": false,
"import.meta.test": false
}
esbuild
- Тип:
object - По умолчанию
{
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
mode
- Тип:
string - По умолчанию:
"production"
optimizeDeps
esbuildOptions
- Тип:
object - По умолчанию
{
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
exclude
- Тип:
array - По умолчанию
[
"vue-demi"
]
publicDir
resolve
extensions
- Тип:
array - По умолчанию
[
".mjs",
".js",
".ts",
".jsx",
".tsx",
".json",
".vue"
]
root
- Тип:
string - По умолчанию:
"/<rootDir>"
server
fs
allow
- Тип:
array - По умолчанию
[
"/<rootDir>/.nuxt",
"/<rootDir>/app",
"/<rootDir>",
"/<workspaceDir>"
]
vue
features
propsDestructure
- Тип:
boolean - По умолчанию:
true
isProduction
- Тип:
boolean - По умолчанию:
true
script
hoistStatic
template
compilerOptions
- Тип:
object
transformAssetUrls
- Тип:
object - По умолчанию
{
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
}
vueJsx
- Тип:
object - По умолчанию
{
"isCustomElement": {
"$schema": {
"title": "",
"description": "",
"tags": []
}
}
}
vue
Vue.js config
compilerOptions
Опции компилятора Vue на этапе сборки.
См.: Vue documentation
config
Глобальная конфигурация приложения Vue. В nuxt.config задают только сериализуемые опции; остальное — в runtime в плагине Nuxt.
См.: Vue app config documentation
propsDestructure
Enable reactive destructure for defineProps
- Тип:
boolean - По умолчанию:
true
runtimeCompiler
Включать ли компилятор Vue в runtime-бандл.
- Тип:
boolean - По умолчанию:
false
transformAssetUrls
image
- Тип:
array - По умолчанию
[
"xlink:href",
"href"
]
img
- Тип:
array - По умолчанию
[
"src"
]
source
- Тип:
array - По умолчанию
[
"src"
]
use
- Тип:
array - По умолчанию
[
"xlink:href",
"href"
]
video
- Тип:
array - По умолчанию
[
"src",
"poster"
]
watch
Паттерны файлов, при изменении которых перезапускается dev-сервер Nuxt.
Массив строк (абсолютные пути или относительно srcDir и слоёв) или регулярных выражений (сопоставление с путём относительно srcDir).
- Тип:
array
watchers
Переопределение конфигурации watchers в nuxt.config.
chokidar
Опции, передаваемые в chokidar.
См.: chokidar
ignoreInitial
- Тип:
boolean - По умолчанию:
true
ignorePermissionErrors
- Тип:
boolean - По умолчанию:
true
rewatchOnRawEvents
Типы событий, при которых watcher перезапускается.
webpack
watchOptions to pass directly to webpack.
См.: webpack@4 watch options.
aggregateTimeout
- Тип:
number - По умолчанию:
1000
webpack
aggressiveCodeRemoval
Жёсткая замена typeof process, typeof window и typeof document для tree-shake бандла.
- Тип:
boolean - По умолчанию:
false
analyze
При использовании webpack Nuxt подключает webpack-bundle-analyzer для визуализации бандлов.
Установите true для анализа или передайте объект опций: для webpack или для vite.
- Тип:
object - По умолчанию
{
"template": "treemap",
"projectRoot": "/<rootDir>",
"filename": "/<rootDir>/.nuxt/analyze/{name}.html"
}
Пример:
export default defineNuxtConfig({
webpack: {
analyze: {
analyzerMode: 'static',
},
},
})
cssSourceMap
Включить CSS source map (по умолчанию true в dev).
- Тип:
boolean - По умолчанию:
false
devMiddleware
См.: webpack-dev-middleware — доступные опции.
stats
- Тип:
string - По умолчанию:
"none"
experiments
Configure webpack experiments
extractCSS
Вынос CSS в отдельные файлы.
Через mini-css-extract-plugin CSS выносится в отдельные файлы (обычно по одному на компонент), что позволяет кэшировать CSS и JS раздельно.
- Тип:
boolean - По умолчанию:
true
Пример:
export default defineNuxtConfig({
webpack: {
extractCSS: true,
// or
extractCSS: {
ignoreOrder: true,
},
},
})
Чтобы вынести весь CSS в один файл, можно использовать обходное решение. Однако выносить всё в один файл не рекомендуется. Extracting into multiple CSS files is better for caching and preload isolation. It can also improve page performance by downloading and resolving only those resources that are needed.
Пример:
export default defineNuxtConfig({
webpack: {
extractCSS: true,
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /\.(css|vue)$/,
chunks: 'all',
enforce: true,
},
},
},
},
},
})
filenames
Настройка имён файлов бандлов.
Подробнее о манифестах: документация webpack.
В примере ниже «красивые» имена чанков заменяются на числовые id:
Пример:
export default defineNuxtConfig({
webpack: {
filenames: {
chunk: ({ isDev }) => (isDev ? '[name].js' : '[id].[contenthash].js'),
},
},
})
app
- Тип:
function
chunk
- Тип:
function
css
- Тип:
function
font
- Тип:
function
img
- Тип:
function
video
- Тип:
function
friendlyErrors
Установите false, чтобы отключить оверлей FriendlyErrorsWebpackPlugin.
- Тип:
boolean - По умолчанию:
true
hotMiddleware
См.: webpack-hot-middleware — доступные опции.
loaders
Настройка опций встроенных webpack-лоадеров Nuxt.
css
См.: css-loader — доступные опции.
esModule
- Тип:
boolean - По умолчанию:
false
importLoaders
- Тип:
number - По умолчанию:
0
url
filter
- Тип:
function
cssModules
См.: css-loader — доступные опции.
esModule
- Тип:
boolean - По умолчанию:
false
importLoaders
- Тип:
number - По умолчанию:
0
modules
localIdentName
- Тип:
string - По умолчанию:
"[local]_[hash:base64:5]"
url
filter
- Тип:
function
esbuild
- Тип:
object - По умолчанию
{
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
См.: esbuild loader
file
См.: file-loader Options
По умолчанию:
{ "esModule": false }
esModule
- Тип:
boolean - По умолчанию:
false
limit
- Тип:
number - По умолчанию:
1000
fontUrl
См.: file-loader Options
По умолчанию:
{ "esModule": false }
esModule
- Тип:
boolean - По умолчанию:
false
limit
- Тип:
number - По умолчанию:
1000
imgUrl
См.: file-loader Options
По умолчанию:
{ "esModule": false }
esModule
- Тип:
boolean - По умолчанию:
false
limit
- Тип:
number - По умолчанию:
1000
less
- По умолчанию
{
"sourceMap": false
}
См.: less-loader Options
pugPlain
См.: pug options
sass
См.: sass-loader Options
По умолчанию:
{
"sassOptions": {
"indentedSyntax": true
}
}
sassOptions
indentedSyntax
- Тип:
boolean - По умолчанию:
true
scss
- По умолчанию
{
"sourceMap": false
}
См.: sass-loader Options
stylus
- По умолчанию
{
"sourceMap": false
}
vue
См.: vue-loader — доступные опции.
compilerOptions
- Тип:
object
propsDestructure
- Тип:
boolean - По умолчанию:
true
transformAssetUrls
- Тип:
object - По умолчанию
{
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
}
vueStyle
- По умолчанию
{
"sourceMap": false
}
optimization
Настройка оптимизации webpack.
minimize
Установите false, чтобы отключить минификацию (в dev по умолчанию отключена).
- Тип:
boolean - По умолчанию:
true
minimizer
Можно задать свой массив плагинов-минификаторов.
runtimeChunk
- Тип:
string - По умолчанию:
"single"
splitChunks
automaticNameDelimiter
- Тип:
string - По умолчанию:
"/"
cacheGroups
chunks
- Тип:
string - По умолчанию:
"all"
optimizeCSS
Опции плагина OptimizeCSSAssets.
По умолчанию true при включённом extractCSS.
- Тип:
boolean - По умолчанию:
false
См.: css-minimizer-webpack-plugin documentation.
plugins
Дополнительные плагины webpack.
- Тип:
array
Пример:
import webpack from 'webpack'
import { version } from './package.json'
export default defineNuxtConfig({
webpack: {
plugins: [
// ...
new webpack.DefinePlugin({
'process.VERSION': version,
}),
],
},
})
postcss
Customize PostCSS Loader. same options as postcss-loader options
postcssOptions
plugins
- Тип:
object - По умолчанию
{
"autoprefixer": {},
"cssnano": {}
}
profile
Включить профайлер в webpackbar.
Обычно включается аргументом CLI --profile.
- Тип:
boolean - По умолчанию:
false
См.: webpackbar.
serverURLPolyfill
Библиотека-полифилл для URL и URLSearchParams.
По умолчанию 'url' (пакет).
- Тип:
string - По умолчанию:
"url"
warningIgnoreFilters
Фильтры для скрытия предупреждений сборки.
- Тип:
array
workspaceDir
Корневой каталог workspace приложения.
Часто используется в монорепозитории. Nuxt пытается определить его автоматически; при необходимости можно переопределить здесь. Обычно задавать не требуется.
- Тип:
string - По умолчанию:
"/<workspaceDir>"