使用gql.tada搭配Bun遇fetch错误,graphql-env.d.ts生成失败
解决gql.tada + Bun 环境下的schema加载与类型文件生成问题
1. 修复bunx gql.tada doctor的fetch is not defined错误
- 该问题并非doctor命令不兼容Bun,而是gql.tada的部分逻辑在Bun环境下未正确绑定全局fetch,可通过以下方式解决:
- 显式指定环境变量运行命令:
NODE_ENV=development bunx gql.tada doctor - 或创建临时脚本手动注入fetch:在项目根目录新建
doctor-fix.js文件,写入内容:
再通过Bun运行脚本:globalThis.fetch = fetch; import('gql.tada/cli').then(({ doctor }) => doctor());bun run doctor-fix.js
- 显式指定环境变量运行命令:
2. 强制生成graphql-env.d.ts并启用VSCode错误提示
- 先确认
tsconfig.json的插件配置完整且路径正确,示例配置如下:{ "compilerOptions": { "plugins": [ { "name": "@0no-co/graphqlsp", "schema": "./path/to/your/schema.graphql", // 替换为你的schema本地路径或远程URL "tadaOutputLocation": "./src/graphql-env.d.ts" // 指定类型文件输出路径 } ] } } - 重启VSCode的TypeScript服务:打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),执行
TypeScript: Restart TS Server - 手动触发类型生成:在终端运行
bunx gql.tada codegen - 若仍无提示,检查VSCode使用的TypeScript版本:点击右下角TypeScript版本号,选择"Use Workspace Version",确保使用项目本地的TypeScript依赖
3. 排查基础依赖与配置问题
- 确保已安装必要依赖:
bun add -D graphql @0no-co/graphqlsp - 若schema为远程URL,可先将其下载到本地作为文件引用,规避网络请求相关的潜在问题
内容的提问来源于stack exchange,提问作者Michael Lorton
相关产品推荐
相关产品推荐

