我使用的是@ graphql -codegen/cli,其中我的确认被设置为输出到graphql和graphql文件:
'http://localhost:8080/v1/graphql':
headers:
secret: "devsecret"
'http://localhost:3000/api/auth':
headers:
secret: "devsecret"
documents: './**/*.graphql'
overwrite: true
generates:
generated/graphql-sdk.ts:
config:
rawRequest: true
plugins:
- 'typescript'
- typescript-graphql-request
- 'typescript-operations'
- fragment-matcher:
apolloClientVersion: 3
module: es2015
useExplicitTyping: false
generated/graphql.ts:
config:
reactApolloVersion: 3
withHooks: true
withComponent: false
withHOC: false
skipTypename: true
plugins:
- 'typescript'
- 'typescript-operations'
- 'typescript-react-apollo'
- fragment-matcher:
apolloClientVersion: 3
module: es2015
useExplicitTyping: false是否有可能将这两个编解码器信任到同一个.ts文件中。
此外,上述两种方法都要求*.graphql文件中存在突变和查询,是否有一种方法可以使codegen为查询所需的. to /..tsx文件(使用类似gql标记的gql(...some query...)?)。
我试着把“文档”放在一个数组中,比如:
documents: ['./**/*.graphql', './**/.ts', './**/.tsx']但它被忽视了。
发布于 2022-11-07 08:35:15
我是行会的查莉,在GraphQL代码生成器上工作。
您可以利用import-type-preset在后端和前端GQL类型之间共享基本类型,避免重复。
使用共享类型文件(resolvers-types.ts)的后端解析器配置(types.ts)示例:
import { CodegenConfig } from "@graphql-codegen/cli";
const config: CodegenConfig = {
schema: "schema.graphql",
documents: ["src/**/*.ts"],
generates: {
"types.ts": {
plugins: ["typescript"],
},
"resolvers-types.ts": {
preset: "import-types-preset",
presetConfig: {
typesPath: "./types.js", // .js for ESM support
},
plugins: ["typescript-resolvers"],
},
},
};
export default config;您将在这里找到一个完整的、实用的示例:https://github.com/charlypoly/codegen-repros/tree/master/resolvers-import-types
https://stackoverflow.com/questions/74340442
复制相似问题