【问题标题】:"export 'createNetworkInterface' was not found in 'apollo-client'“在‘​​apollo-client’中找不到导出‘createNetworkInterface’
【发布时间】:2018-04-08 11:59:44
【问题描述】:

我做了这个示例:https://github.com/Akryum/vueconf-2017-demo

因此,我的项目中有相同的文件:https://github.com/Akryum/vueconf-2017-demo/blob/master/src/apollo-client.js

这是我的应用程序中使用的代码:

import { ApolloClient, createNetworkInterface } from 'apollo-client'

const apolloClient = new ApolloClient({
  networkInterface: createNetworkInterface({
    uri: 'http://localhost:3000/graphql',
    transportBatching: true,
  }),
  connectToDevTools: true,
})

export default apolloClient

因此,我在控制台收到此错误(警告):

warning  in ./src/apollo/client.js

15:23-45 "export 'createNetworkInterface' was not found in 'apollo-client'

这是来自浏览器控制台:

TypeError: Object(__WEBPACK_IMPORTED_MODULE_0_apollo_client__["createNetworkInterface"]) is not a function. (In 'Object(__WEBPACK_IMPORTED_MODULE_0_apollo_client__["createNetworkInterface"])({
    uri: 'http://localhost:3000/graphql',
    transportBatching: true
  })', 'Object(__WEBPACK_IMPORTED_MODULE_0_apollo_client__["createNetworkInterface"])' is an instance of Object)

有什么问题?

【问题讨论】:

  • 您的package.json 中列出的apollo-client 的版本是什么?
  • @DanielRearden ^2.0.1。并使用2.0.1 版本。

标签: javascript graphql graphql-js apollo vue-apollo


【解决方案1】:

该存储库似乎尚未更新为使用 apollo-client 的最新版本。 Apollo 客户端在 2.0 版中发生了重大变化。您可以查看这些更改的摘要和升级指南here。实施的一项重大更改是从 NetworkInterface 切换到 ApolloLink,这就是为什么您会看到无法找到 createNetworkInterface 的错误。

要么降级到 1.9.3 版

npm install apollo-client@1.9.3

或按照上面链接中的升级指南了解如何在您的项目中使用 2.0 版。

【讨论】:

【解决方案2】:

由于版本 2.x Apollo 已弃用 NetworkInterface 以支持 Apollo Link,不幸的是,这是一个重大更改。

要让您的代码再次运行,您需要进行以下更改,

替换

import { ApolloClient, createNetworkInterface } from 'apollo-client'

import ApolloClient from 'apollo-client';

添加

import { HttpLink } from 'apollo-link-http';

然后运行

npm install --save apollo-link-http

替换

const apolloClient = new ApolloClient({
  networkInterface: createNetworkInterface({
    uri: 'http://localhost:3000/graphql',
    transportBatching: true,
  }),
  connectToDevTools: true,
})

const apolloClient = new ApolloClient({
  link: new HttpLink({
    uri: 'http://localhost:3000/graphql'
  }),
  connectToDevTools: true,
})

别忘了导出你的函数

export default apolloClient

【讨论】:

    猜你喜欢
    • 2016-09-02
    • 2021-03-18
    • 2020-12-06
    • 2018-03-03
    • 2021-09-21
    • 2021-01-15
    • 2018-04-17
    • 2018-06-27
    • 2018-07-26
    相关资源
    最近更新 更多