这是放置在构建应用时开发的任何本地模块的好地方。
自动注册的文件模式为:
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/ 目录中找到的模块,并按字母顺序加载。你可以通过在每个目录名前添加数字来改变本地模块的加载顺序:
modules/
1.first-module/
index.ts
2.second-module.ts