modules
Каталог modules/ — локальные модули Nuxt с автоматической регистрацией.
Это место для размещения любых локальных модулей, которые вы разрабатываете при создании приложения.
Поддерживаются такие шаблоны путей к локальным модулям:
modules/*/index.tsmodules/*.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, // префикс экспортов, чтобы избежать конфликтов с кодом пользователя или другими модулями
})
},
})
export default defineEventHandler(() => {
return { hello: 'world' }
})
При запуске 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