node.js - Webpack导入所有文件并将其导出为数组
问题描述
所以我正在使用 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
`
我尝试为解析器单独做同样的事情,因为索引文件看起来与架构索引文件几乎完全相同,并且我收到错误“[错误:“默认”在解析器中定义,但不在架构中]”
解决方案
显然,我所要做的就是将 .default 添加到上下文(模块)!
const context = require.context('.', true, /^\.\/(?!index\.js).*\.js$/, 'sync');
let resolvers = [];
context.keys().forEach(module => {
resolvers.push(context(module).default)
});
export default resolvers
推荐阅读
- database - 我应该使用什么软件来进行图形分布式存储和处理?
- java - 在 Oreo 上单击带有 EditText 的 FAB 时出现 IndexOutOfBoundsException
- c# - 更改日期类型为 ASP.NET 的文本框中的文本
- yii2 - Yii2依赖下拉列表不起作用
- javascript - 更改另一个 iframe javascript 中的 iframe 中的 scr
- mysql - MySQL 结合选择总和和选择查询
- javascript - 从平面对象创建键:值对象
- xml - 满足条件时复制、删除和更改元素的值
- java - 使用 byte-buddy 创建注释,但我的代码找不到注释
- android - Cordova在android上构建错误