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.