错误:无法使用GraphQLObjectType"__指令;来自另一个模块或领域

错误:无法使用GraphQLObjectType"__指令;来自另一个模块或领域,graphql,gatsby,Graphql,Gatsby,我正在尝试使用Gatsby从GraphQL查询数据。我按照使用GraphQL查询页面中数据的说明进行操作,但是,我一直遇到一个错误 错误(这是我需要解决的问题,而不是下面的示例): 错误:无法从另一个模块使用GraphQLObjectType“\u_指令” 或领域。确保中只有一个“graphql”实例 node_模块目录。如果使用不同版本的“graphql” 其他依赖模块的依赖项,使用“分辨率”来 确保只安装了一个版本。 复制品 “graphql”模块不能同时使用,因为不同的 版本可能具有不同的

我正在尝试使用Gatsby从GraphQL查询数据。我按照使用GraphQL查询页面中数据的说明进行操作,但是,我一直遇到一个错误

错误(这是我需要解决的问题,而不是下面的示例):

错误:无法从另一个模块使用GraphQLObjectType“\u_指令” 或领域。确保中只有一个“graphql”实例 node_模块目录。如果使用不同版本的“graphql” 其他依赖模块的依赖项,使用“分辨率”来 确保只安装了一个版本。
复制品 “graphql”模块不能同时使用,因为不同的
版本可能具有不同的功能和行为。数据来自 函数中使用的一个版本可能会从另一个版本产生 混乱和虚假的结果

知道为什么会这样吗?我的node_modules文件夹中只有一个graphql实例

我正在使用的示例:

我将从GraphQL导入我自己的数据,但现在作为概念证明,我正在处理这个盖茨比·里克和莫蒂的例子(上面的链接-我还没有考虑axios演示)

index.js代码:

import React, { Component } from 'react'
import { graphql } from 'gatsby'

// This query is executed at build time by Gatsby.
export const GatsbyQuery = graphql`
  {
    rickAndMorty {
      character(id: 1) {
        name
        image
      }
    }
  }
`

class ClientFetchingExample extends Component {
  render() {
    const {
      rickAndMorty: { character },
    } = this.props.data

    return (
      <div style={{ textAlign: "center", width: "600px", margin: "50px auto" }}>
        <h1>{character.name} With His Pupper</h1>
        <p>Rick & Morty API data loads at build time.</p>
        <div>
          <img
            src={character.image}
            alt={character.name}
            style={{ width: 300 }}
          />
        </div>
        <h2>Image of Rick's pupper</h2>
        <p>This will come from a request on the client</p>
      </div>
    )
  }
}

export default ClientFetchingExample
我检查发现,您的查询有错误。应该是这样的:

export const GatsbyQuery = graphql`
  query rickAndMorty {
    character(id: 1) {
      name
      image
    }
  }
`
我猜您试图进行命名查询,但创建了错误的查询

plugins: [
  {
    resolve: "gatsby-source-graphql",
    options: {
      typeName: "RMAPI",
      fieldName: "character",
      url: "https://rickandmortyapi-gql.now.sh/",
    },
  },

我的问题是关于错误,而不是代码(我根据上下文请求添加了代码)。错误已解决,说明如下

我首先检查
warn.lock
中的
graphql
实例。(我有两个版本的
graphql
)。错误显示应该只有一个

要解决此问题,请执行以下操作:

1) 我在我的package.json中添加了以下内容:

"resolutions": {
  "graphql": "^14.1.0"
}
2) 我运行了
npm安装

这为我修正了错误,希望能帮助其他人


旁注:另一种查找节点模块中可能存在的版本的方法在终端中运行
查找节点模块-名称图ql

对我来说,它返回了两个实例(不确定盖茨比一个来自哪里):

要查找版本,请使用
grep version node\u modules/graphql/package.json


这就是为什么我发现我在运行GraphQL 14.1.0

我尝试了这个,但都返回了错误:7:5错误无法查询“query”类型上的字段“rickAndMorty”
"resolutions": {
  "graphql": "^14.1.0"
}
node_modules/graphql
node_modules/gatsby/node_modules/graphql