: 최신 버전으로 https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js
graphql (또는 graphql-sync)의 introspectionQuery
및 printSchema
유틸리티는 패키지에서 직접 내보내집니다. (
"scripts": {
"update-schema": "scripts/updateSchema.js"
}
는 다음과 같이 scripts/updateSchema.js
로 스크립트 자체를 구현 :
먼저 매니페스트에 스크립트를 추가 :
당신은라는 새로운 폭스 스크립트 update-schema
을 만들어 폭스에서 updateSchema
스크립트를 에뮬레이션 할 수 있습니다 가정 당신의 GraphQL 스키마) data/schema.js
에 살고 :
'use strict'
const fs = require('fs')
const path = require('path')
const Schema = require('../data/schema')
const gql = require('graphql')
const result = gql.graphql(Schema, gql.introspectionQuery)
if (result.errors) {
console.error(
'ERROR introspecting schema: ',
JSON.stringify(result.errors.map((err) => gql.formatError(err)), null, 2)
)
} else {
fs.writeFileSync(
path.join(__dirname, '../data/schema.json'),
JSON.stringify(result, null, 2)
)
}
fs.writeFileSync(
path.join(__dirname, '../data/schema.graphql'),
gql.printSchema(Schema)
)
당신이 할 수있는 이제 서비스의 설정 탭으로 가서 드롭 다운에서 선택하여 웹 인터페이스에서 스크립트를 실행합니다 (아무런 인수도 전달할 필요가 없으며 OK를 누릅니다). 스크립트는 스타터 키트에있는 것처럼 JSON 및 GraphQL 파일을 생성해야합니다.
좋은 답변입니다. 또한'schema.json'를 Relay 앱에 다시 전달하려면 Foxx에 api (GET)를 제공해야합니다. 'server/utils/babelRelayPlugin.js'에서 GET 요청을 한 다음, 검색된'schema.json'을 전달하여'babel-relay-plugin'을 설정해야합니다. – lvarayut