Graphql Apollo client:codegen如何为@client指令生成打字?
当我运行以下命令时:Graphql Apollo client:codegen如何为@client指令生成打字?,graphql,apollo,apollo-client,Graphql,Apollo,Apollo Client,当我运行以下命令时: apollo client:codegen --target=typescript --config=./apollo.config.js --outputFlat=./graphql.queries.ts → 初始化Apollo GraphQL项目“MySchema”时出错:错误: “为合并架构加载架构”中出错:错误:未知指令 “客户” 这是由于我的一个查询包含@client指令: query MyQuery { someStuff @client {
apollo client:codegen --target=typescript --config=./apollo.config.js --outputFlat=./graphql.queries.ts
→ 初始化Apollo GraphQL项目“MySchema”时出错:错误:
“为合并架构加载架构”中出错:错误:未知指令
“客户”
这是由于我的一个查询包含@client
指令:
query MyQuery {
someStuff @client {
value
}
}
在
我发现我可以为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等价物
我看到两个可能的错误:
- 要么我没有正确使用@client指令
- 或者apollo.config.js文件中缺少(已删除或未记录?)对clientSchema的支持
有什么想法吗?好的,看来我必须直接在schema.graphql中添加以下行
指令@client on FIELD
这将重载AST定义以支持@client指令
然后写:
query MyQuery {
someStuff @client {
value
}
}
将不再在我的IDE中引发错误,也不会在生成相应的querys.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中对我来说从来都不起作用,但是这将是一个挖掘