modules

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

这是你在开发应用时放置本地模块的好地方。

自动注册的文件模式为:

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

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

// `nuxt/kit` 是一个辅助子路径导入,你在定义本地模块时可以使用它
// 这意味着你无需将 `@nuxt/kit` 添加到项目的依赖中
import { createResolver, defineNuxtModule, addServerHandler } 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')
    })
  }
})

当启动 Nuxt 时,hello 模块将被注册,/api/hello 路由将可用。

模块按以下顺序执行:

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

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

Directory structure
modules/
  1.first-module/
    index.ts
  2.second-module.ts
阅读更多 Docs > Guide > Going Further > Modules.
观看 Vue School 关于 Nuxt 私有模块的视频。