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
相关产品推荐
相关产品推荐

