layers

Директория layers/ служит для организации и автоматической регистрации локальных слоёв в приложении.

Директория layers/ позволяет организовывать и переиспользовать код, компоненты, композаблы и конфигурации. Слои из этой директории в проекте регистрируются автоматически.

Авторегистрация директории layers/ доступна в Nuxt v3.12.0+.
Слои удобны для больших кодовых баз в стиле Domain-Driven Design (DDD), переиспользуемых UI-библиотек и тем, общих пресетов конфигурации и вынесения админ-панелей или фичевых модулей.

Структура

Каждая поддиректория в layers/ считается отдельным слоем. Слой может повторять структуру обычного приложения Nuxt.

У каждого слоя должен быть файл nuxt.config.ts, иначе он не считается валидным (файл может быть пустым).
Directory structure
-| 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 v3.16.0.

Содержимое слоя

В слое могут быть:

Порядок приоритета

Если один и тот же ресурс (компонент, композабл, страница и т.д.) определён в нескольких слоях, побеждает слой с более высоким приоритетом. Слои сортируются по алфавиту, буквы ближе к концу алфавита имеют больший приоритет (Z > A).

Чтобы задать порядок, добавьте числовой префикс: 1.base/, 2.features/, 3.admin/.

Узнать больше Docs > 4 X > Getting Started > Layers#layer Priority.