GraphQL Code Generator在Next.js项目中运行后未生成代码如何解决
可能的原因及对应解决方案
- 1. codegen.yml 缩进格式错误
YAML 语法对缩进要求非常严格,你当前配置里generates字段下的输出路径没有正确缩进,导致生成器读不到输出配置。修正后的配置参考:
overwrite: true schema: http://localhost:3001/graphql documents: "./src/graphql/**/*.graphql" generates: ./src/generated/graphql.tsx: # 这里必须缩进,和上面generates保持2/4个空格的缩进差 plugins: - typescript - typescript-operations - typescript-react-apollo config: withHooks: true
- 2. GraphQL 文件扩展名拼写错误
你文件夹里的操作文件后缀写成了login.grahql,少了字母p,正确后缀应为.graphql,导致documents配置的glob规则匹配不到任何输入文件,自然不会生成输出。 - 3. 匿名操作无法触发代码生成
你写的Query没有定义操作名,部分GraphQL Code Generator插件要求必须对操作命名才会生成对应代码,修正你的login.graphql内容:
query GetCurrentUser { # 给Query加个名字 user{ username createdAt email id isLoggedIn fullName firstName lastName } }
- 4. 未正确拉取远端Schema
你配置的Schema地址是本地http://localhost:3001/graphql,如果运行yarn generate时该端口的GraphQL服务没有启动,生成器拉不到Schema结构会静默失败。你可以在生成命令后加--debug参数查看详细运行日志,定位具体失败环节:
"scripts": { "generate": "graphql-codegen --debug" }
- 5. 文件夹权限问题
检查src/generated文件夹是否有写入权限,部分权限严格的环境下无写入权限也会导致生成失败且无报错。
内容的提问来源于stack exchange,提问作者crispengari
相关产品推荐
相关产品推荐

