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 更好地配合生成的类型文件工作:
1、对ASP内核代码进行DLL封装,从而大大提高了用户的访问速度和安全性;2、采用后台生成HTML网页的格式,使程序访问速度得到进一步的提升;3、用户可发展下级会员并在下级购买商品时获得差额利润;4、全新模板选择功能;5、后台增加磁盘绑定功能;6、后台增加库存查询功能;7、后台增加财务统计功能;8、后台面值类型批量设定;9、后台财务曲线报表显示;10、完善订单功能;11、对所有传输的字符串进行安全
-
禁用对 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 里造轮子”,而是让它成为你高效调用专业工具的快捷入口。









