【发布时间】:2019-03-18 04:59:19
【问题描述】:
所以我正在使用 Graphql,并且一直在进行模式拼接,我的索引文件看起来非常长。举个小例子:
import userSchema from "./user";
import hobbiesSchema from "./hobbies";
import jobSchema from "./job";
import petSchema from "./pet";
const linkSchema = gql`
scalar Date
type Query {
_: Boolean
}
type Mutation {
_: Boolean
}
type Subscription {
_: Boolean
}
`;
export default [
linkSchema,
userSchema,
petSchema,
jobSchema,
hobbiesSchema,
];
如果我计划再添加 20 个模式,这将变得非常长!我想要一种在目录中添加所有文件然后能够导出它们的方法。所以我已经看到很多相同答案的例子:
const context = require.context('.', true, /^\.\/(?!index\.js).*\.js$/, 'sync');
let schemas = {};
context.keys().forEach(module => {
schemas[module] = context(module);
});
所以我尝试将它放在一个数组中并将其导出为我所有模式的数组,推动数组中的每个模块并将其导出到底部。我认为这会起作用,但它不起作用,我想知道为什么?我收到一个错误。
我的模式以以下形式定义和导出
export default gql`
//schema stuff
`
我尝试为解析器单独做同样的事情,因为索引文件看起来与架构索引文件几乎完全相同,并且我收到错误“[错误:在解析器中定义的“默认”,但不是在架构中]”
【问题讨论】: