要解决不能从另一个schema.graphql文件中的schema stitching访问共享的模式的问题,可以采用以下解决方法:
# 共享的schema.graphql文件
type Query {
sharedField: String
}
const { mergeTypeDefs } = require('@graphql-tools/merge');
const { loadFilesSync } = require('@graphql-tools/load-files');
const sharedTypeDefs = loadFilesSync('path/to/shared/schema.graphql');
const otherTypeDefs = loadFilesSync('path/to/other/schema.graphql');
const mergedTypeDefs = mergeTypeDefs([sharedTypeDefs, otherTypeDefs]);
module.exports = mergedTypeDefs;
const { stitchSchemas } = require('@graphql-tools/stitch');
const mergedSchema = stitchSchemas({
schemas: [mergedTypeDefs, otherSchemas],
});
module.exports = mergedSchema;
通过这种方式,可以在不同的schema.graphql文件中定义和维护共享的模式,并使用schema stitching将它们连接起来以构建完整的模式。这样,就可以从另一个schema.graphql文件中访问共享的模式。