layers
Директория layers/ позволяет организовывать и переиспользовать код, компоненты, композаблы и конфигурации. Слои из этой директории в проекте регистрируются автоматически.
layers/ доступна в Nuxt v3.12.0+.Структура
Каждая поддиректория в layers/ считается отдельным слоем. Слой может повторять структуру обычного приложения Nuxt.
nuxt.config.ts, иначе он не считается валидным (файл может быть пустым).-| layers/
---| base/
-----| nuxt.config.ts
-----| app/
-------| components/
---------| BaseButton.vue
-------| composables/
---------| useBase.ts
-----| server/
-------| api/
---------| hello.ts
---| admin/
-----| nuxt.config.ts
-----| app/
-------| pages/
---------| admin.vue
-------| layouts/
---------| admin.vue
Алиасы слоёв
Для каждого слоя автоматически создаётся алиас к его srcDir. Обращение к слою: #layers/[name]:
// Слой base
import something from '#layers/base/path/to/file'
// Слой admin
import { useAdmin } from '#layers/admin/composables/useAdmin'
Содержимое слоя
В слое могут быть:
nuxt.config.ts— конфигурация слоя (мержится с основной)app.config.ts— реактивная конфигурация приложенияapp/components/— Vue-компоненты (автоимпорт)app/composables/— композаблы (автоимпорт)app/utils/— утилиты (автоимпорт)app/pages/— страницыapp/layouts/— лейаутыapp/middleware/— мидлвар маршрутовapp/plugins/— плагины Nuxtserver/— серверные маршруты, мидлвар и утилитыshared/— общий код для app и server
Порядок приоритета
Если один и тот же ресурс (компонент, композабл, страница и т.д.) определён в нескольких слоях, побеждает слой с более высоким приоритетом. Слои сортируются по алфавиту, буквы ближе к концу алфавита имеют больший приоритет (Z > A).
Чтобы задать порядок, добавьте числовой префикс: 1.base/, 2.features/, 3.admin/.
Либо укажите каталоги в extends (например, extends: ['~~/layers/admin', '~~/layers/base']), чтобы задать порядок из nuxt.config без переименования; первая запись имеет наивысший приоритет.