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

如何配置GraphQL Codegen的Schema合并顺序,让本地Schema覆盖CMS Schema?

解决GraphQL Codegen Schema合并顺序问题

要实现本地Schema覆盖线上CMS Schema,核心是调整GraphQL Codegen配置中schema数组的顺序:

  • 配置规则:将需要被覆盖的Schema(线上CMS端点)放在数组前面,用来覆盖的本地Schema放在数组后面。因为Codegen在合并Schema时,后加载的定义会覆盖先加载的同名类型、字段等。

具体配置示例

YAML配置(codegen.yml)

schema:
  - "https://your-cms-endpoint/graphql"
  - "./src/local-schema.graphql"
# 其他生成配置...

TypeScript配置(codegen.ts)

import type { CodegenConfig } from '@graphql-codegen/cli';

const config: CodegenConfig = {
  schema: [
    'https://your-cms-endpoint/graphql',
    './src/local-schema.graphql'
  ],
  // 示例生成客户端代码配置
  generates: {
    './src/gql/': {
      preset: 'client',
      plugins: []
    }
  }
};

export default config;

额外说明

如果仅需覆盖特定字段而非整个类型,可在本地Schema中使用extend type语法,但仍需保证本地Schema在配置顺序中靠后,才能让扩展定义优先生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:44:58