如何使用Apollo Rover搭配Apollo Codegen生成TypeScript Schema类型
实操配置方案
方案一:直接搭配新版Apollo Codegen使用(无需转JSON、无需旧版Apollo CLI)
这是操作成本最低的方案,新版Apollo Codegen原生支持Rover导出的.graphql格式SDL文件:
- 第一步:用Rover从Apollo Studio拉取已注册的SDL格式Schema
执行命令:rover graph fetch <你的GraphRef,示例:my-graph@current> > schema.graphql - 第二步:安装新版Codegen相关依赖
执行命令:npm install -D @apollo/cli @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations - 第三步:在项目根目录新建codegen.yml配置文件,直接指定本地schema文件路径即可:
schema: ./schema.graphql documents: ./src/**/*.graphql generates: ./src/generated/graphql.ts: plugins: - typescript - typescript-operations - 第四步:在package.json添加执行脚本:
"generate:types": "apollo codegen generate",运行npm run generate:types即可生成对应的TS类型文件。
方案二:适配旧版Apollo CLI的JSON格式要求
如果必须使用旧版Apollo CLI,也无需手动转换格式,Rover本身支持直接从Apollo Studio导出Introspection JSON格式的Schema,不需要请求远程服务端点:
- 第一步:用Rover拉取JSON格式Schema
执行命令:rover graph fetch <你的GraphRef> --format introspection_json > schema.json - 第二步:配置旧版Apollo CLI指定本地JSON文件路径即可,无需配置远程端点:
执行生成命令时追加参数:apollo codegen:generate --localSchemaFile=./schema.json --target=typescript --includes=./src/**/*.graphql
内容的提问来源于stack exchange,提问作者Adam Glasser
相关产品推荐
相关产品推荐

