Nuxt 3服务端如何自动导入server/models文件夹下所有脚本文件?
Nuxt服务端全局自动导入server/models文件的解决方案
方法1:直接配置Nuxt imports
修改nuxt.config.ts,调整imports配置明确服务端导入目录:
export default defineNuxtConfig({ imports: { global: true, // 仅服务端生效的导入目录 server: [ 'server/models', // 若有子目录,用**匹配所有嵌套文件 'server/models/**' ] } })
如果需要同时支持客户端和服务端,把server字段换成dirs即可。
方法2:通过自定义模块配置
如果用自定义模块实现,要确保路径解析正确。假设模块文件在modules/import-models.ts:
import { createResolver, defineNuxtModule } from '@nuxt/kit' export default defineNuxtModule({ setup(options, nuxt) { const { resolve } = createResolver(import.meta.url) // 解析到项目根目录下的server/models addServerImportsDir(resolve('../server/models')) } })
然后在nuxt.config.ts里注册模块:
export default defineNuxtConfig({ modules: ['./modules/import-models.ts'] })
关键注意事项
- 模型文件需使用命名导出,示例:
若使用默认导出,需在// server/models/User.ts export interface User { id: number name: string }imports配置里手动映射:imports: { global: true, server: ['server/models'], defaultExport: { 'server/models/User': 'User' } } - 修改配置后必须重启Nuxt开发服务器,或执行
npx nuxt prepare生成类型声明。 - 之前配置的
nitro.scanDirs和nitro.plugins对自动导入无效,可直接移除。
内容的提问来源于stack exchange,提问作者F.NiX
相关产品推荐
相关产品推荐

