modules

Каталог modules/ — локальные модули Nuxt с автоматической регистрацией.

Это место для размещения любых локальных модулей, которые вы разрабатываете при создании приложения.

Поддерживаются такие шаблоны путей к локальным модулям:

  • modules/*/index.ts
  • modules/*.ts

Их не нужно отдельно перечислять в nuxt.config.ts.

// `nuxt/kit` — это хелпер для импорта подпути, который можно использовать при определении локальных модулей
// это означает, что вам не нужно добавлять `@nuxt/kit` в зависимости вашего проекта
import { 
addComponentsDir
,
addServerHandler
,
createResolver
,
defineNuxtModule
} from 'nuxt/kit'
export default
defineNuxtModule
({
meta
: {
name
: 'hello',
},
setup
() {
const
resolver
=
createResolver
(import.meta.
url
)
// Добавление роута API
addServerHandler
({
route
: '/api/hello',
handler
:
resolver
.
resolve
('./runtime/api-route'),
}) // Добавление директории компонентов
addComponentsDir
({
path
:
resolver
.
resolve
('./runtime/app/components'),
pathPrefix
: true, // префикс экспортов, чтобы избежать конфликтов с кодом пользователя или другими модулями
}) }, })

При запуске Nuxt будет зарегистрирован модуль hello и станет доступен маршрут /api/hello.

Все компоненты, страницы, композаблы и прочие файлы, которые обычно лежат в app/, для модуля нужно размещать в modules/your-module/runtime/app/. Так они корректно проходят проверку типов.

Модули выполняются в следующей последовательности:

  • Сначала загружаются модули, указанные в nuxt.config.ts.
  • Затем выполняются модули, найденные в директории modules/, и они загружаются в алфавитном порядке.

Вы можете изменить порядок локальных модулей, добавив номер в начало имени каждой директории:

Directory structure
modules/
  1.first-module/
    index.ts
  2.second-module.ts
Узнать больше Docs > 3 X > Guide > Modules.
Посмотрите видео от Vue School о закрытых модулях Nuxt.