5 votes

"L'exportation 'createNetworkInterface' n'a pas été trouvée dans 'apollo-client'".

J'ai fait cet échantillon : https://github.com/Akryum/vueconf-2017-demo

En conséquence, j'ai le même fichier dans mon projet : https://github.com/Akryum/vueconf-2017-demo/blob/master/src/apollo-client.js

Voici le code utilisé dans mon application :

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

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

export default apolloClient

En conséquence, je reçois cette erreur (avertissement) dans la console :

warning  in ./src/apollo/client.js

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

Et ça, c'est à partir de la console du navigateur :

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)

Quel est le problème ?

7voto

Daniel Rearden Points 8834

Il semble que ce dépôt n'a pas été mis à jour pour utiliser apollo-client de la dernière version. Le client Apollo a subi des changements majeurs dans la version 2.0. Vous pouvez consulter un résumé de ces changements et un guide de mise à niveau. aquí . L'un des changements fondamentaux mis en œuvre a été le passage de l'anglais à l'espagnol. NetworkInterface à ApolloLink C'est pourquoi vous voyez l'erreur suivante createNetworkInterface ne peut être trouvé.

Soit rétrograder à la version 1.9.3

npm install apollo-client@1.9.3

ou suivez le guide de mise à niveau dans le lien ci-dessus pour voir comment utiliser la version 2.0 dans votre projet.

7voto

Faktor 10 Points 708

Depuis la version 2.x d'Apollo, NetworkInterface a été supprimé au profit d'Apollo Link, ce qui constitue malheureusement un changement radical.

Pour que votre code fonctionne à nouveau, vous devez effectuer les modifications suivantes,

remplacer

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

avec

import ApolloClient from 'apollo-client';

ajouter

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

et exécuter

npm install --save apollo-link-http

remplacer

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

avec

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

et n'oubliez pas d'exporter votre fonction

export default apolloClient

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X