2017-10-20 3 views
0

私は1.1.0 babel-plugin-relay + react-relay + react-compiler + graphql 0.10.x、15.5.xに反応していますが、すべてを1.4.1にアップグレードしてから、graphql 0.11.7と私はNPM開始を実行しているときに、このエラーを取得しておく16.0.0に対応:BabelPluginRelay:プラグインコンテキストに「種類」が含まれていると予想されましたが、1.1.0から1.4.1にアップグレードする場合は[オブジェクトオブジェクト]があります。どうして?

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. 

そうのようなバベル - プラグインリレーで: 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 
}) 

とのWebPACK。 config.js:

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

} 

質問はなぜですか?どのように私はそれを修正することができますか?応答で、私ははっきりと種類を見ることができるので:

can see relay types here

答えて

0

それを解決しました。これに

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

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

は、これを変更しなければなりませんでした
関連する問題