必须安装prisma出品的graphql for vscode插件,装完需彻底重启vscode,配置graphql.config.yml路径需相对于该文件所在目录,并手动设置.graphql文件语言模式为graphql,否则字段补全和跳转均不生效。

必须装 GraphQL for VSCode(Prisma 出品),其他所有同名插件都无效;装完不重启 VSCode,补全和跳转永远不生效。
装哪个插件才真能补全字段
VS Code 市场里搜 “GraphQL”,结果里有多个插件,但只有 GraphQL for VSCode(作者 Prisma)能加载 schema、做字段补全、支持 Ctrl+Click 跳转。别碰 GraphQL Language Service 或旧版 Apollo GraphQL 插件——它们已归档,装了反而让状态栏卡在 GraphQL: disconnected,Output 面板反复报 Unable to load schema from。
装完后必须彻底关闭所有 VSCode 窗口再重开,Developer: Reload Window 不起作用——Language Server 根本不会启动。
graphql.config.yml 路径写错 = 白配
插件靠这个文件定位 schema,但路径解析规则反直觉:它是相对于 graphql.config.yml 所在目录,不是项目根目录,也不是当前打开的文件位置。
-
./schema.graphql中的./会被 YAML 解析器忽略,等价于schema.graphql;写成src/schema.graphql就错了(除非 config 文件也在src/里) - Windows 用户禁用反斜杠:
schema\schema.graphql是非法 YAML,必须写schema/schema.graphql - 多文件 schema 必须用数组:
schema: ["schema/types.graphql", "schema/queries.graphql"] - 远程 endpoint 写法:
schema: http://localhost:4000/graphql,但需确保服务已启、CORS 开放、introspection 未禁用
.graphql 文件不手动设语言模式,补全就静默失效
VSCode 默认不把 .graphql 或 .gql 后缀识别为 GraphQL 语言,即使插件和配置都对。后果是:字段不补全、Ctrl+Click 跳转失败,但语法错误仍可能标红——容易误以为“已经好了”。
解决方式只有两种之一:
- 打开任意
.graphql文件 → 点右下角语言标识(如“Plain Text”)→ 选“GraphQL” - 或在
settings.json中加:"files.associations": {"*.graphql": "graphql", "*.gql": "graphql"}
改完必须重启 VSCode,再打开一个 .graphql 文件,确认右下角显示 GraphQL: connected。如果只显示 GraphQL 没冒号和 connected,说明 schema 没加载成功。
TS/JS 里 gql 模板字面量不补全?检查这三点
插件默认只识别独立成行的 gql`` 或 graphql``,且依赖 AST 解析。以下任一情况都会导致字段提示消失:
-
gql模板不能拼接:const q = gql`` + ''或嵌套在对象属性里(如{ query: gql`` })都不行 - 必须单独成行,前后无空格、换行或注释干扰
- query 名称要合法:以字母开头,不能含空格或
/等符号(query GetUser✅,query Get User❌) - 用了
fragment却没放在同一文件、也没在extensions.graphql.include中声明路径,插件看不到类型定义,关联字段就不补全
最容易被忽略的是状态栏——没看到 GraphQL: connected 就别调字段补全,那说明 schema 根本没加载成功。查 Output 面板(Ctrl+Shift+U)里 GraphQL 日志,比猜强十倍。











