You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:25:08