vscode GraphQL插件踩坑

TLDR

  • vscode的GraphQL语法插件, 目前比较推荐Graphql FoundationGraphQL: Language Feature Support

  • 相关配置, 见[GraphQL: Language Feature Support](# GraphQL: Language Feature Support)

  • 配置文件的语法规则, 参考GraphQL Config

背景

之前用的GraphQL插件, 只开启了语法高亮. 自己写的schema没什么问题, 排查问题时, 只能靠搜索, 太难了....

vscode有不少语法提示插件, 但很多不太适用了. 试用了几款, 踩了踩坑...

插件

GraphQL: Language Feature Support

# graphql.config.yml  //in root directory
# 使用URL的方式, 只有语法提示, 没有定义跳转
# schema: http://localhost:5910/graphql
schema:
  - ./bff/src/schemas/*.gql
  - ./bff/src/schemas/**/*.gql
  - ./bff/src/schemas/**/**/*.gql
  • 需要按照graphql-config的格式, 添加配置文件
  • 有语法提示、支持定义跳转
  • 目前仍在维护
  • 唯一可惜的是, 没有引用查询

有常规的语法提示了, 而且自定义类型也可以提示. 支持定义跳转

vscode-graphql

  • 个人开发者插件, 坚持与否, 全看心情
  • 上一次的发布时间, 在2019年... 验证了第一条
  • 插件代码库 (iemmp.com) 已经丢失了.......
  • 按照quick start配置
    • 有高亮, 但是不太符合预期
    • 有语法提示
    • 没有定义跳转

整体效果不是很理想, 故放弃

Apollo GraphQL

// module.exports = {
//   client: {
//     service: {
//       name: "my-service-name",
//       localSchemaFile: "./src/schemas/*.graphql",
//     },
//   },
// };
// module.exports = {
//   client: {
//     service: {
//       name: "github",
//       url: "http://localhost:5910/graphql", 
//       // optional headers
//       headers: {
//         authorization: "Bearer lkjfalkfjadkfjeopknavadf",
//       },
//       // optional disable SSL validation check
//       skipSSLValidation: true,
//     },
//   },
// };
module.exports = {
  service: {
    endpoint: {
      url: "http://localhost:5910/graphql",
      headers: {
        // optional
        authorization: "Bearer lkjfalkfjadkfjeopknavadf",  
      },
      skipSSLValidation: true, // optional, disables SSL validation check
    },
  },
};

// export default {
//   service: {
//     endpoint: {
//       url: "http://localhost:5910/graphql",
//       headers: {
//         // optional
//         authorization: "Bearer lkjfalkfjadkfjeopknavadf",
//       },
//       skipSSLValidation: true, // optional, disables SSL validation check
//     },
//   },
// };

  • 不支持es module
  • 更新时间还在22年
  • issue关闭速度相当一般...

搞了半天, 只有语法高亮, 没有定义跳转... 也可能是我太菜了

配置文件加载总是不成功. .js因为es module不能用, .cjs加载不上...

评论区也有吐槽配置不生效的, 不折腾了...