'apollo-client'中找不到“export'createNetworkInterface'

时间:2017-10-27 00:03:00

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

我做了这个样本: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)

有什么问题?

2 个答案:

答案 0 :(得分:7)

看起来repo尚未更新为使用apollo-client的最新版本。 Apollo客户端在2.0版本中进行了重大更改。您可以查看这些更改的摘要和升级指南here。实施的一项重大更改是从NetworkInterface切换到ApolloLink,这就是您看到无法找到createNetworkInterface的错误的原因。

要么降级到1.9.3版本

npm install apollo-client@1.9.3

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

答案 1 :(得分:7)

自版本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