modules

使用 modules/ 目录在你的应用中自动注册本地模块。

这里非常适合放置你在构建应用时开发的本地模块。

自动注册的文件匹配模式为

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

你不需要将这些本地模块单独添加到你的 nuxt.config.ts 中。

// `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 { addComponentsDir, addServerHandler, createResolver, defineNuxtModule } from 'nuxt/kit'

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

    // Add an API route
    addServerHandler({
      route: '/api/hello',
      handler: resolver.resolve('./runtime/api-route'),
    })

    // Add components
    addComponentsDir({
      path: resolver.resolve('./runtime/app/components'),
      pathPrefix: true, // Prefix your exports to avoid conflicts with user code or other modules
    })
  },
})

启动 Nuxt 时,将会注册 hello 模块,并且 /api/hello 路由将可用。

请注意,通常应放在 app/ 目录中的所有组件、页面、组合式函数和其他文件,都需要放在 modules/your-module/runtime/app/ 中。这能确保它们被正确进行类型检查。

模块按以下顺序执行

  • 首先,加载在 nuxt.config.ts 中定义的模块。
  • 然后,执行在 modules/ 目录中找到的模块,它们会按字母顺序加载。

你可以通过在每个目录名称前面添加数字来更改本地模块的顺序

目录结构
modules/
  1.first-module/
    index.ts
  2.second-module.ts
Docs > 4 X > Guide > Modules 中了解更多信息。
观看关于 Nuxt 私有模块的 Vue School 视频。