Typescript 如何使用GraphQL工具从两个源位置加载GraphQL模式?

Typescript 如何使用GraphQL工具从两个源位置加载GraphQL模式?,typescript,graphql,graphql-tools,Typescript,Graphql,Graphql Tools,我想从不同的位置(本地应用程序和公共模块)加载graphql模式。我有: 第一个位置中的.graphql文件包含: type Query { macro(input: GetMacroInput!): Macro! externalConfluencePage( input: GetExternalConfluencePage! ): ExternalConfluencePage } 有什么问题吗?效果很好 例如 index.ts import { pr

我想从不同的位置(本地应用程序和公共模块)加载graphql模式。我有:

第一个位置中的.graphql文件包含:

type Query {
    macro(input: GetMacroInput!): Macro!
    externalConfluencePage(
        input: GetExternalConfluencePage!
    ): ExternalConfluencePage
}
有什么问题吗?

效果很好

例如

index.ts

import { printSchema } from 'graphql';
import { loadSchemaSync, GraphQLFileLoader } from 'graphql-tools';
import { join } from 'path';

const localScheme = join(__dirname, './local.graphql');
const commonSchema = join(__dirname, './common/*.graphql');
const schema = loadSchemaSync([localScheme, commonSchema], {
  loaders: [new GraphQLFileLoader()],
});

console.log(printSchema(schema));
common/common.graphql

input GetExternalConfluencePage {
  confluencePageId: String!
}

type ExternalConfluencePage {
  title: String!
  body: String!
}
type Query {
  externalConfluencePage(input: GetExternalConfluencePage!): ExternalConfluencePage
}
local.graphql

input GetExternalConfluencePage {
  confluencePageId: String!
}

type ExternalConfluencePage {
  title: String!
  body: String!
}
type Query {
  externalConfluencePage(input: GetExternalConfluencePage!): ExternalConfluencePage
}
将加载的GraphQL架构打印到控制台:

input GetExternalConfluencePage {
  confluencePageId: String!
}

type ExternalConfluencePage {
  title: String!
  body: String!
}

type Query {
  externalConfluencePage(input: GetExternalConfluencePage!): ExternalConfluencePage
}
软件包版本:

“graphql”:“^15.4.0”,
“graphql工具”:“^6.2.3”,

是否确实定义了
GetExternalConfluencePage
在第二个位置键入
.graphql
文件而不是使用它?如果不查看
.graphql
fileThx的代码,我们无法再现您的错误。我在问题中添加了.graphql文件。本地模式是否使用公共模式中定义的输入类型
GetExternalConfluencePage
?这可能是因为我缺乏理解(我是graphql的初学者)。我认为,一旦在任何.graphql文件中定义了输入定义,我就可以在任何地方使用输入定义。我尝试使用“extend-type Query”命令将externalConfluencePage定义移动到common.graphql文件中,但随后出现的错误消息“error:Query.externalConfluencePage在解析程序中定义,但在架构中未定义”指向相同的问题。我必须弄清楚如何在模块中定义一个额外的查询字段并在本地使用它。你有什么提示吗?