问题描述
Relay 的提前编译会生成新的编译工件。为了能够做到这一点,有必要将 GraphQL 架构路径传递到其配置文件。我的问题是:该路径可以是 URL 吗?如果没有,有什么替代方法?文档对此非常模糊。
为什么我需要它是一个 URL?
我的后端在另一个服务中,所以我必须找到一种方法来访问它的架构。我正在使用 graphql get-schema
命令 ─ 它制作远程模式的本地副本。但 get-schema
命令在 graphql-cli@4
中已弃用。
get-schema 不再可用 在以前的版本中,您可以从 > 端点内给定的 URL 将架构下载到 schemaPath 中的给定路径。在新版本中,schema是指schema的端点。
如果您使用 prisma 或任何其他在 URL 端点下提供架构的工具,您必须>在配置 YAML 中使用以下语法指定它:
从那时起,我就找不到将远程架构与我的前端项目同步的简单方法。也许唯一的选择是降级到 graphql-cli@3
?
解决方法
与 relay-config
不同,graphql-config
似乎不接受 URL 架构。必须是本地路径。
因此,您必须继续使用本地架构。 graphql-cli@4
迁移指南解释了如何下载架构,因为此功能不再是包的核心:
如果您想从这个 URL 下载架构到您的本地文件系统,您还需要使用以下命令或其 npm 等效命令安装 codegen
插件及其 schema-ast
插件:>
yarn add @graphql-cli/codegen @graphql-codegen/schema-ast --dev
之后可以指定本地schema文件的输出路径:
schema: http://localhost:4000/graphql
extensions:
codegen:
generates:
./schema.graphql:
plugins:
- schema-ast
通过运行 graphql codegen,schema.graphql 文件会在您项目的根路径中生成。