首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当阿波罗服务器处于生产模式时,如何生成图形in类型,以便在graphql-codegen的帮助下作出反应?

当阿波罗服务器处于生产模式时,如何生成图形in类型,以便在graphql-codegen的帮助下作出反应?
EN

Stack Overflow用户
提问于 2021-04-13 14:55:14
回答 1查看 1.7K关注 0票数 0

当后端模式设置为NODE_ENV: development时,所有操作都很完美,但是在生产模式下,graphql-codegen会出错:

本地web服务器错误:

阿波罗服务器不允许

GraphQL内省,但查询包含_schema或_type。要启用内省,在生产中传递内省: true To ApolloServer

生产web服务器错误:

未能从https://example.com/graphql加载架构,原因:无法验证第一个证书。GraphQL代码生成器支持:

"schema")

  • Introspection endpoint

  • Multiple文件的
  • ES模块和CommonJS导出(导出为默认或命名的导出)、带有类型定义的GraphQL 文件的
    • URL(配置文件

    中的glob expressions)

  • String

前端codegen.yml:

代码语言:javascript
运行
复制
schema: ${REACT_APP_GRAPHQL_URL}
documents:
 - './src/GraphQL/queries/query.ts'    
 - './src/GraphQL/mutations/mutation.ts'
overwrite: true
generates:
  ./src/generated/graphql.tsx:
    plugins:
      - typescript
      - typescript-operations
      - typescript-react-apollo
    config:
      skipTypename: false
      withHooks: true
      withHOC: false
      withComponent: false

前端devDependencies:

代码语言:javascript
运行
复制
{
    "@graphql-codegen/cli": "^1.20.1",
    "@graphql-codegen/typescript": "^1.20.2",
    "@graphql-codegen/typescript-operations": "^1.17.14",
    "@graphql-codegen/typescript-react-apollo": "^2.2.1",
}

国家预防机制脚本:

代码语言:javascript
运行
复制
{
    "generate": "graphql-codegen -r dotenv/config --watch --config codegen.yml",
    "prebuild": "graphql-codegen -r dotenv/config --config codegen.yml"
}

./src/generated/目录添加到.gitignore中

EN

回答 1

Stack Overflow用户

发布于 2021-04-13 14:55:14

我的解决方案是将内省插件和单独的codegen.yml文件添加到:

  • codegen-generate-schema-json and
  • codegen-generate-typescript

代码语言:javascript
运行
复制
devDependencies: {"@graphql-codegen/introspection": "^1.18.1"}

码元-生成-类型类型.:

代码语言:javascript
运行
复制
schema: graphql.schema.json
documents:
  - './src/GraphQL/queries/query.ts'
  - './src/GraphQL/mutations/mutation.ts'
overwrite: true
generates:
  ./src/generated/graphql.tsx:
    plugins:
      - typescript
      - typescript-operations
      - typescript-react-apollo
    config:
      skipTypename: false
      withHooks: true
      withHOC: false
      withComponent: false

编码-生成-模式-json.yml:

代码语言:javascript
运行
复制
schema: ${REACT_APP_GRAPHQL_URL}
overwrite: true
generates:
  ./graphql.schema.json:
    plugins:
      - introspection

因此,需要将./graphql.schema.json文件作为模式源而不是URI来使用。

也许你提出了更好的解决方案?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67077301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档