私はアポロのgraphql-server-express
with Nodeそして私は私の「typedef」スキーマ定義ファイルを.graphql or .gql
ファイルを明確にし、構文を強調表示します。
これを行う最良の方法は何ですか?唯一の選択であると思われるBabel(?)を超えて、オンラインで適切なリソースを見つけることができません。
助けてくれてありがとう!
あなたはこれまでに解決策を見つけたと確信していますが、他の人にとってはこれが役立つかもしれません https://github.com/prismagraphql/graphql-import 。
import { importSchema } from 'graphql-import'
import { makeExecutableSchema } from 'graphql-tools'
const typeDefs = importSchema('schema.graphql')
const resolvers = {}
const schema = makeExecutableSchema({ typeDefs, resolvers })
次のディレクトリ構造を想定します。
.
├── a.graphql
├── b.graphql
└── c.graphql
a.graphql
# import B from "b.graphql"
type A {
# test 1
first: String
second: Float
b: B
}
b.graphql
# import C from 'c.graphql'
type B {
c: C
hello: String!
}
c.graphql
type C {
id: ID!
}
それを正しい方法で実装する方法と同じ質問があります。とにかくこれは私のために働きます。
import {gql} from 'apollo-server-express'
import * as types from './types.graphql'
export const typeDefs = gql`${types}`
同じ質問がありましたが、サーバー側パイプラインにbabel/webpackを導入せずにあなたが求めていることを達成する唯一の方法は、エクスポートされたテンプレート文字列としてクエリを記述することです。
例えば.
/* query.gql */
module.exports = `
schema {
query: Query
mutation: Mutation
}
type Query {
posts: [Post]
post(id:String, slug:String): Post
user(uid:String): User
}
...
`
ありがたいことに、GraphQLのVS Code構文ハイライターはこの方法をサポートしています。