Col*_*bri 5 javascript apollo graphql graphql-js 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
Run Code Online (Sandbox Code Playgroud)
结果,我得到控制台的错误(警告):
warning in ./src/apollo/client.js
15:23-45 "export 'createNetworkInterface' was not found in 'apollo-client'
Run Code Online (Sandbox Code Playgroud)
这是来自浏览器控制台:
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)
Run Code Online (Sandbox Code Playgroud)
问题是什么?
看起来repo尚未更新为使用apollo-client最新版本.Apollo客户端在2.0版本中进行了重大更改.您可以在此处查看这些更改的摘要和升级指南.实现的一个重大变化是从切换NetworkInterface到ApolloLink,这就是为什么您看到createNetworkInterface无法找到的错误.
要么降级到版本1.9.3
npm install apollo-client@1.9.3
Run Code Online (Sandbox Code Playgroud)
或者按照上面链接中的升级指南来了解如何在项目中使用2.0版.
由于Version 2.x Apollo已经弃用了NetworkInterface以支持Apollo Link,不幸的是这是一个重大改变.
要使代码重新运行,您需要进行以下更改,
更换
import { ApolloClient, createNetworkInterface } from 'apollo-client'
Run Code Online (Sandbox Code Playgroud)
同
import ApolloClient from 'apollo-client';
Run Code Online (Sandbox Code Playgroud)
加
import { HttpLink } from 'apollo-link-http';
Run Code Online (Sandbox Code Playgroud)
并运行
npm install --save apollo-link-http
Run Code Online (Sandbox Code Playgroud)
更换
const apolloClient = new ApolloClient({
networkInterface: createNetworkInterface({
uri: 'http://localhost:3000/graphql',
transportBatching: true,
}),
connectToDevTools: true,
})
Run Code Online (Sandbox Code Playgroud)
同
const apolloClient = new ApolloClient({
link: new HttpLink({
uri: 'http://localhost:3000/graphql'
}),
connectToDevTools: true,
})
Run Code Online (Sandbox Code Playgroud)
并且不要忘记导出您的功能
export default apolloClient
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3622 次 |
| 最近记录: |