问题标签 [graphql-tag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graphql - Apollo codegen 复制嵌套片段导入
我在.gql
文件中使用可重用的片段,但结果查询将在使用 codegen 时多次声明片段。一个简化的例子:
但这会导致 ImageInfos 片段声明的多次出现。我怎样才能避免这种情况?
node.js - 安装 npm 包时 /src 是什么意思?
在客户打电话告诉我它已经崩溃之前,我尝试(再次)构建一个运行良好的 React 项目。
在构建(npm run build)时,我得到了这个:
然而,当我运行给定的命令时,npm install graphql-tag/src
它只是保持超时,试图通过 ssh 进入似乎是 github 存储库的内容。我只是不明白为什么它会尝试使用 SSH,因为我知道当我查看 packages.json 文件时,我只能找到这个特定包的 github 存储库的 http URL。
我尝试以经典方式安装该软件包,该软件包npm install graphql-tag
运行良好,但是当我重新启动构建时,我遇到了同样的失败。
我什至尝试使用其 github 存储库的 URL 直接安装该软件包(https://github.com/apollographql/graphql-tag | 通过谷歌搜索找到),但它最终以相同的方式结束。
我还尝试删除文件夹 node_modules 并重新安装所有npm i
.
最后,这是我在npm install graphql-tag/src
查看日志文件时使用建议的命令时得到的结果cat /home/plagiat/.npm/_logs/2021-10-25T00_40_42_148Z-debug.log
任何见解将不胜感激。
reactjs - gql标签中的字符串插值
我已经将此作为问题发布在 graphql-tag 存储库中,但我会将其发布在这里,因为我希望这里有人有一个可行的解决方案。
我想做什么?
我想根据传递给我的反应组件的道具动态定义本地类型的 typedef。
我为什么要这样做?
我意识到这不是定义 gql 的预期方式,但是,我正在围绕 Apollo Provider 创建一个 React 包装器组件。它的目的是使本地模拟数据的过程(如此处所述https://www.apollographql.com/docs/react/development-testing/client-schema-mocking/)更加无缝且样板更少。我将采用一种声明性方法,用户可以简单地定义一个字段数组(名称、graphQL 类型和可选实现,默认为 graphQL 类型的合理伪造实现),这将使本地字段直接在 Query 类型上可用以及一个类型数组(名称、字段和可选的嵌套类型),它们应该可以在没有样板的情况下以声明方式定义任意本地模式。
目前的结果是什么?
只是为了建立一个基线,以下工作正常,并允许我从 Apollo CLI 运行代码生成并在我的应用程序中查询新的本地测试字段(使用 @client 指令)
如果我将 qgl 定义更改为如下所示
运行 codegen 时出现以下错误Syntax Error: Expected Name, found ":"
。如果我将 gql 定义更改为此
Syntax Error: Expected Name, found "}".
我在 codegen 上收到此错误。通常,似乎插值字符串之后的所有内容都会导致编译器在下一个字符上发出此错误。如果我}
在 testString 中包含 ,我会得到错误Syntax Error: Expected Name, found <EOF>.
。
现在,如果我尝试更改为函数语法,那么 localTypeDefs 定义如下所示:
typedef 实际上是在没有任何错误的情况下生成的,但是,GraphQLError: Cannot query field "test" on type "Query"
当我查询该字段时,代码生成仍然失败并出现错误。与我在顶部发布的工作基线相比,该查询根本没有改变,如果我在不触及任何其他内容的情况下改回该基线,则代码生成器不再抱怨该查询。奇怪的是,如果我将上面的内容改回基线实现,但保留显式函数调用而不是隐式 `` 字符串,如下所示:
我仍然收到错误消息GraphQLError: Cannot query field "test" on type "Query"
,但是一旦我改回基本情况,一切正常。
angular - 带有角度 6 的 grahpql-tag 中的打字稿错误
使用 angular 6 获取 graphql 的错误。我的 package.json 配置是:
由于其他项目中有很多依赖项,我无法升级 angular、typescript、rxjs。请提出一些其他的选择。
graphql - 查询中的 GraphQL Tag 动态表名(apollo)
在我的应用程序中,每个客户都有自己的数据表。根据选择的客户,我想为 Graphql 查询动态构建表名。
例如:
我在我的 vuex 商店中有客户 ID,并且想在查询中插入一个变量,就像下面的伪代码一样,但它不起作用。
是否可以选择如何执行此操作或如何解决此问题?
硬编码所有不同的客户查询并在运行时选择它们不是一个选项。
谢谢!
javascript - graphql-tag:如何获取正文请求的实际字符串?
我想使用库https://github.com/apollographql/graphql-tag 我正在寻找比我更聪明、了解如何实际使用它的人。
假设我有一个 GraphQL 查询文档,如下所示:
我现在如何获取要添加到 http 正文请求中的字符串?我最终得到了一个对象,它允许我进行一些自省和操作,很好,但是如何获取服务器请求的实际正文字符串?
我想我错过了一些明显的东西......