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

Amplify中拆分schema.graphql及API.service.ts生成文件的方法问询

拆分Amplify的GraphQL Schema与自动生成的API文件方案

一、拆分schema.graphql(可行)

Amplify CLI原生支持多文件Schema自动合并,你之前用#import失败是因为#在GraphQL Schema里是注释符号,该行被当成了注释。正确做法如下:

  • 进入你的API目录:amplify/backend/api/<你的API名称>
  • 创建schema文件夹
  • 将原schema.graphql的内容按业务模块拆分到多个.graphql文件中(比如user.graphql、post.graphql),每个文件独立定义对应的类型、指令等
  • 根目录的schema.graphql可保留(Amplify会合并根目录文件与schema文件夹下的所有文件),也可直接删除
  • 执行amplify push,Amplify会自动合并所有Schema文件并完成部署

二、拆分自动生成的API.service.ts(可行)

Amplify默认生成的单文件API.service.ts可以通过自定义代码生成工具实现拆分,推荐用graphql-codegen配合Amplify插件:

  1. 安装依赖:
npm install -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-amplify
  1. 在项目根目录创建codegen.yml配置文件,示例按操作类型拆分的配置:
schema: ./amplify/backend/api/<你的API名称>/schema/**/*.graphql
generates:
  ./src/graphql/generated/:
    plugins:
      - typescript
      - typescript-operations
      - typescript-amplify
    config:
      splitOperations: true # 按查询、突变、订阅拆分文件
      generateModels: true # 生成独立的模型类型文件
  1. 在package.json的scripts中添加命令:
"scripts": {
  "codegen": "graphql-codegen --config codegen.yml"
}
  1. 执行npm run codegen,会在指定目录生成拆分后的文件(比如queries.ts、mutations.ts、subscriptions.ts及各模型的类型文件)
  2. 后续每次amplify push后,运行npm run codegen即可更新拆分后的API文件,替代默认的单文件生成结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:05:02