2017-10-20 17 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로 업그레이드 할 때 [object Object]가 있습니다. 왜?

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 
}) 

와 웹팩을. 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 
}) 

이를 변경했다