Я не знаю много о реле-fullstack, но если ваша единственная проблема создания файла схемы, представленную в учебнике, просто проверить, как оно генерируется: https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js
С последней версией of graphql (или graphql-sync) утилиты introspectionQuery
и printSchema
экспортируются непосредственно из пакета.
Вы можете эмулировать updateSchema
сценарий в Фокса, создав новый Foxx скрипт update-schema
:
Первый добавить скрипт в манифесте:
"scripts": {
"update-schema": "scripts/updateSchema.js"
}
Затем реализовать сам скрипт, как scripts/updateSchema.js
как так (при условии, ваша схема 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 для вашей схемы, как и в наборе стартеров.
Отличный ответ. Кроме того, вам необходимо предоставить api (GET) в Foxx, чтобы передать «schema.json» обратно в ваше приложение Relay. В 'server/utils/babelRelayPlugin.js' вам нужно сделать запрос GET, а затем настроить' babel-relay-plugin', передав извлеченный 'schema.json'. – lvarayut