Nuxt/docs/2.guide/2.directory-structure/1.modules.md
hossein-moghadam a548b70342
docs: rename 3.nuxt.config.md to 3.nuxt-config.md (#23819)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2023-10-25 11:19:09 +02:00

1.5 KiB

title head.title description navigation.icon
modules modules/ Use the modules/ directory to automatically register local modules within your application. i-ph-folder-duotone

It is a good place to place any local modules you develop while building your application.

The auto-registered files patterns are:

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

You don't need to add those local modules to your nuxt.config.ts separately.

::code-group

// `nuxt/kit` is a helper subpath import you can use when defining local modules
// that means you do not need to add `@nuxt/kit` to your project's dependencies
import { createResolver, defineNuxtModule, addServerHandler } from 'nuxt/kit'

export default defineNuxtModule({
  meta: {
    name: 'hello'
  },
  setup () {
    const { resolve } = createResolver(import.meta.url)

    // Add an API route
    addServerHandler({
      route: '/api/hello',
      handler: resolve('./runtime/api-route')
    })
  }
})
export default defineEventHandler(() => {
  return { hello: 'world' }
})

::

When starting Nuxt, the hello module will be registered and the /api/hello route will be available.

Local modules are registered in alphabetical order. You can change the order by adding a number to the front of each directory name:

modules/
  1.first-module/
    index.ts
  2.second-module.ts

:read-more{to="/docs/guide/going-further/modules"}