给出以下代码:
import { graphql } from 'graphql'
import graphqlTools from 'graphql-tools'
const { makeExecutableSchema } = graphqlTools
const typeDefs = `
type Query {
as: [A]
}
type A {
x: Int,
y: Int
}
`
const schema = makeExecutableSchema ({ typeDefs })
graphql(schema, '{ as { x, y } }').then(console.log)
我收到此错误:
错误:无法从其他模块或领域使用GraphQLSchema“[object GraphQLSchema]”。
确保node_modules目录中只有一个“graphql”实例。如果“graphql”的不同版本是其他依赖模块的依赖项,请使用“resolution”来确保只安装一个版本。
这是怎么回事?
发生这种情况是因为graphql-tools
模块从其CommonJS模块导入graphql
,而我的代码从ES模块执行。也就是说,我自己模块中的每个对象都来自ES模块,而graph-tool
则不是。
它就像导入CommonJS模块的graphql
导入任何东西一样简单,graphql
和graphql-tools
的两个对象都可以在一起讨论:
import graphql_ from 'graphql/index.js'
import graphqlTools from 'graphql-tools'
const { graphql } = graphql_
const { makeExecutableSchema } = graphqlTools
const typeDefs = `
type Query {
as: [A]
}
type A {
x: Int,
y: Int
}
`
const schema = makeExecutableSchema ({ typeDefs })
graphql(schema, '{ as { x, y } }').then(console.log)