ich nicht viel über Relais-fullstack weiß aber, wenn Ihr einziges Problem ist die Schemadatei im Tutorial zur Verfügung gestellt zu erzeugen, nur überprüfen, wie es erzeugt wird: https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js
Mit der neuesten Version von graphql (oder graphql-sync) werden die introspectionQuery
und printSchema
Dienstprogramme direkt aus dem Paket exportiert.
können Sie emulieren die updateSchema
Skript in Foxx durch ein neues Foxx Skript update-schema
genannt erstellen:
Fügen Sie zunächst das Skript zu Ihrem Manifest:
"scripts": {
"update-schema": "scripts/updateSchema.js"
}
implementieren dann das Skript selbst als scripts/updateSchema.js
wie so (vorausgesetzt, Ihr GraphQL Schema lebt in 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)
)
Sie können Führen Sie nun das Skript über die Weboberfläche aus, indem Sie auf den Tab Einstellungen Ihres Dienstes gehen und es aus dem Dropdown auswählen (Sie müssen keine Argumente übergeben, drücken Sie einfach OK). Das Skript sollte die zwei JSON- und GraphQL-Dateien für Ihr Schema generieren, wie es im Starter-Kit der Fall ist.
Große Antwort. Zusätzlich müssen Sie eine API (GET) in Ihrem Foxx bereitstellen, um die 'schema.json' zurück an Ihre Relay-App zu übergeben. Im 'server/utils/babelRelayPlugin.js' müssen Sie die GET-Anfrage machen und dann' babel-relay-plugin' einrichten, indem Sie die abgerufene 'schema.json' übergeben. – lvarayut