modules

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

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

Шаблоны файлов для авторегистрации:

  • 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 > 4 X > Guide > Modules.
Видео Vue School о приватных модулях Nuxt.