gpt4 book ai didi

graphql - Apollo 客户端 :codegen how to generate typings for @client directive?

转载 作者:行者123 更新时间:2023-12-04 17:35:19 26 4
gpt4 key购买 nike

当我运行以下命令时:

apollo client:codegen --target=typescript --config=./apollo.config.js --outputFlat=./graphql.queries.ts

→ Error initializing Apollo GraphQL project "MySchema": Error: Error in "Loading schema for Merged schema": Error: Unknown directive "client".

这是由于我的一个查询包含 @client 指令:

query MyQuery {
someStuff @client {
value
}
}

关于 https://github.com/apollographql/apollo-tooling/issues/366我发现我可以为 apollo codegen 命令指定一个 --clientSchema 属性,例如:

apollo codegen:generate generated \
--queries=src/components/**/*.tsx \
--target typescript \
--schema src/generated/schema.json \
--clientSchema src/state/schema.graphql

但我使用的是 apollo.config.js 文件,但我没有找到如何在配置文件中指定等效的 clientSchema。

我看到 2 个可能的错误:

  • 我没有正确使用@client 指令
  • 或者 apollo.config.js 文件中缺少(已删除或未记录?)对 clientSchema 的支持

有什么想法吗?

最佳答案

好吧,看来我必须直接在 schema.graphql 之一中添加以下行

FIELD 上的指令@client 这将重载 AST 定义以支持@client 指令。

然后写:

query MyQuery {
someStuff @client {
value
}
}

不会再在我的 IDE 中引发错误,也不会在生成相应的 queries.ts 文件时抛出错误。

有关信息:另一个线程提到在 .graphqlconfig 文件中添加上面的行,如下所示:

{
"name": "Schema name",
"schemaPath": "./pathTo/schema.graphql",
"extensions": {
"endpoints": {
"Default GraphQL Endpoint": {
"url": "http://localhost:4466",
"headers": {
"user-agent": "JS GraphQL"
},
"introspect": false
}
},
"extensions": {
"customDirectives": [
"directive @client on FIELD"
]
}
}
}

但是将它添加到 .graphqlconfig 中对我来说从来没有用过,但是这将是一个挖掘的解决方案......

关于graphql - Apollo 客户端 :codegen how to generate typings for @client directive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56917514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com