2017-10-20 6 views
0

Ich hatte eine perfekt funktionierende Relay moderne App mit 1.1.0 Babel-Plugin-Relais + React-Relais + Reagieren-Compiler + Graphql 0.10.x, reagieren 15.5.x aber seit der Aktualisierung aller von ihnen auf 1.4.1 und graphql zu 0.11.7 und reagieren auf 16.0.0 ich diesen Fehler halte, wenn npm Start ausgeführt wird:BabelPluginRelay: Erwarteter Plugin-Kontext zum Einschließen von "Typen", aber: [Objekt-Objekt] beim Aktualisieren von 1.1.0 auf 1.4.1. Warum?

ERROR in ./src/main.js 
Module build failed: Error: BabelPluginRelay: Expected plugin context to include "types", but got:[object Object] 
    at BabelPluginRelay (/Users/johndoe/testing/atc/node_modules/babel-plugin-relay/lib/BabelPluginRelay.js:36:11) 
    at Object.<anonymous> (/Users/johndoe/testing/atc/src/babelRelayPlugin.js:28:18) 
    at Module._compile (module.js:571:32) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 
    at tryModuleLoad (module.js:447:12) 
    at Function.Module._load (module.js:439:3) 
    at Module.require (module.js:498:17) 
    at require (internal/module.js:20:19) 
    at /Users/johndoe/testing/atc/node_modules/babel-core/lib/transformation/file/options/option-manager.js:178:20 
@ multi (webpack)-dev-server/client?http://localhost:3333 ./src/main.js 
webpack: Failed to compile. 

mit babel-plugin-Relais wie folgt: babelRelayPlugin.js:

const babelRelayPlugin = require('babel-plugin-relay') 
const { introspectionQuery, buildClientSchema, printSchema } = require('graphql/utilities') 
const request = require('sync-request') 
const fs = require('fs') 
const path = require('path') 
const schemaPath = path.join(__dirname, 'schema'); 


const graphqlHubUrl = 'https://myhub.com/dev/graphql' 

const response = request('POST', graphqlHubUrl, { 
    qs: { 
    query: introspectionQuery 
    } 
}) 

console.log('response ', response) 

const schema = JSON.parse(response.body.toString('utf-8')) 

console.log('schema ', schema) 
const graphQLSchema = buildClientSchema(schema.data); 
fs.writeFileSync(
    `${schemaPath}.graphql`, 
    printSchema(graphQLSchema) 
); 

module.exports = babelRelayPlugin(schema.data, { 
    abortOnError: true 
}) 

und webpack. config.js:

query: { 
    presets: ['env', 'react', 'stage-2'], 
    plugins: ['relay', 'transform-class-properties', __dirname + '/src/babelRelayPlugin'] 

} 

die Frage ist warum? und wie kann ich es reparieren? weil in der Antwort kann ich klar Arten sehen:

can see relay types here

Antwort

0

es gelöst.

Wäre dies zu ändern:

module.exports = babelRelayPlugin(schema.data, { 
    abortOnError: true 
}) 

dazu:

module.exports = babelRelayPlugin(schema.data.__schema, { 
    abortOnError: true 
}) 
Verwandte Themen