![](/img/trans.png)
[英]relay-compiler unable to extract and use graphql queries in Typescript
[英]Can relay-compiler read the schema from an endpoint (http or https)?
Relay 的提前编译会生成新的编译工件。 为此,必须将 GraphQL 模式路径传递给其配置文件。 我的问题是:那条路径可以是 URL 吗? 如果不是,有什么替代方法? 文档对此非常模糊。
为什么我需要它成为 URL? 我的后端在另一个服务中,所以我必须找到一种方法来访问它的模式。 我使用的是graphql get-schema
命令——它会生成远程模式的本地副本。 但是get-schema
命令在graphql-cli@4
中已被弃用。
get-schema 不再可用在以前的版本中,您可以从端点内部给定的 >URL 将架构下载到 schemaPath 中的给定路径。 在新版本中,schema 指的是 schema 的端点。
如果您使用 Prisma 或在 URL 端点下提供架构的任何其他工具,您必须在配置 YAML 中使用以下语法指定它:
从那以后,我找不到一种简单的方法来将远程模式与我的前端项目同步。 也许唯一的选择是降级到graphql-cli@3
?
与graphql-config
不同, relay-config
-config 似乎不接受 URL 模式。 它必须是本地路径。
因此,您必须继续使用本地模式。 graphql-cli@4
迁移指南解释了如何下载模式,因为此功能不再是 package 的核心:
如果您想从此 URL 下载模式到本地文件系统,您还需要使用以下命令或其 npm 等效命令安装
codegen
插件及其schema-ast
插件:yarn add @graphql-cli/codegen @graphql-codegen/schema-ast --dev
之后,您可以指定本地模式文件的 output 路径:
schema: http://localhost:4000/graphql extensions: codegen: generates: ./schema.graphql: plugins: - schema-ast
通过运行 graphql 代码生成,schema.graphql 文件在项目的根路径中生成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.