sublime Text 可通过插件与外部工具链实现 graphql Schema 到 typescript 类型的生成,核心是使用 graphql-codegen 配合 Sublime 的 Build System 一键触发类型生成,并辅以 ignore 配置、自动构建和语法高亮提升开发体验。

sublime text 本身不内置 GraphQL Schema 到 TypeScript 类型的生成能力,但可以通过插件 + 外部工具链实现高效静态类型代码生成。核心思路是:用命令行工具(如 graphql-codegen)生成类型,再在 Sublime 中一键触发或快速查看/刷新。
安装并配置 graphql-codegen
这是最主流、维护活跃的方案,支持从本地 .graphql 文件或远程/本地 schema.json 生成精准的 TypeScript 类型和 Hooks。
- 项目根目录初始化:
npm init -y && npm install --save-dev @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-react-query - 运行
npx graphql-codegen init,按提示选择 TypeScript、schema 文件位置(如schema.json)、操作文件(src/**/*.graphql)、输出路径(如src/generated/graphql.ts) - 生成
codegen.yml后,添加常用配置项:generates:src/generated/graphql.ts:plugins:- typescript- typescript-operations- typescript-react-queryconfig:skipTypename: truededupeOperationSuffix: true
在 Sublime 中集成生成命令
无需复杂插件,用 Sublime 的 Build System 即可绑定 graphql-codegen:
- 菜单 → Tools → Build System → New Build System…
- 粘贴以下内容(适配你的项目路径和 node 环境):
{
"shell_cmd": "cd $project_path && npx graphql-codegen --config codegen.yml",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"working_dir": "$project_path",
"selector": "source.js, source.ts"
}
- 保存为
GraphQL Codegen.sublime-build(默认存于Packages/User/) - 之后按
Ctrl+Shift+B(windows/linux)或Cmd+Shift+B(macos),选该构建系统,即可一键生成类型文件
提升开发体验的小技巧
让 Sublime 更好地配合生成的类型文件工作:
- 禁用对 generated/ 目录的 lint 和格式化:在项目根目录的
.prettierignore和.eslintignore中加入src/generated/ - 开启自动保存后生成(可选):安装插件 SublimeOnSaveBuilder,配置其只对
.graphql或schema.json文件变更时触发 build - 快速跳转类型定义:确保已安装 TypeScriptSyntax 或 JS Custom 插件,生成的
graphql.ts能正确高亮、支持 Ctrl+Click 跳转字段类型
替代轻量方案:使用 graphql-schema-linter + 自定义脚本
如果不想引入完整 codegen,仅需基础接口类型(如 Query, Mutation, types),可用 python/Node 小脚本解析 schema.json:
- 用
graphql-js的buildClientSchema+printSchema提取类型结构 - 写一个
gen-types.js,读取schema.json,输出简洁的export Interface Query { ... } - 同样通过 Sublime Build System 调用该脚本,适合极简项目或临时验证
基本上就这些。Sublime 不是 ide,但搭配好工具链,它照样能稳稳支撑类型驱动的 GraphQL 开发。关键不是“在 Sublime 里造轮子”,而是让它成为你高效调用专业工具的快捷入口。