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

Node.js项目从Jest迁移到Vitest时加载@generated/type-graphql失败求助

解决Vitest加载type-graphql生成文件失败的问题

针对你迁移Jest到Vitest时遇到的Error: [vite-node] Failed to load @generated/type-graphql错误,可尝试以下几种解决办法:

  • 配置路径别名
    Vitest默认无法识别自定义的@generated路径前缀,需要在配置文件中添加别名映射,指向实际的生成文件目录。修改你的vitest.config.ts:

    import { defineConfig } from 'vitest/config';
    import path from 'path';
    
    export default defineConfig({
      resolve: {
        alias: {
          '@generated': path.resolve(__dirname, './src/__generated__') // 替换为你项目中type-graphql生成文件的实际路径
        }
      },
      test: {
        globals: true,
        testTimeout: 25000,
        globalSetup: 'src/__tests__/global-setup.ts',
        setupFiles: ['src/__tests__/setup.ts'],
        include: ['**/*.test.ts'],
      },
    });
    
  • 确保生成文件已提前生成
    检查项目中是否有type-graphql的生成脚本,比如在package.json中:

    "scripts": {
      "generate:type-graphql": "type-graphql generate"
    }
    

    运行npm run generate:type-graphql(或对应的yarn/pnpm命令),确认生成文件存在于你配置的别名路径下。

  • 调整文件扩展名支持
    如果type-graphql生成的文件扩展名不在Vitest默认支持列表中,可在配置里添加对应的扩展名:

    export default defineConfig({
      resolve: {
        extensions: ['.ts', '.js', '.mjs'], // 根据实际生成文件的扩展名补充
        alias: { /* ... */ }
      },
      // ...其他配置
    });
    
  • 验证导入路径正确性
    检查测试文件中导入生成文件的语句,确保拼写正确、路径与别名配置完全匹配,比如:

    import { YourGeneratedResolver } from '@generated/type-graphql';
    
  • 启用ESM支持(若项目使用ESM)
    如果你的项目采用ESM模块格式(package.json中有"type": "module"),需在Vitest配置中启用ESM支持:

    export default defineConfig({
      test: {
        useEsm: true,
        // ...其他测试配置
      },
      resolve: { /* ... */ }
    });
    

内容的提问来源于stack exchange,提问作者hvalette

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:21:10