我试图将每个文件作为某个文件夹中的模块导出,以作为单个对象导入。我该怎么做?
我用一个长长的单个文件制作了一个 javascript 插件。我现在试图让它被几个文件分开。我正在使用 Webpack。
而且,在我的插件代码中,有一个名为“fn”的巨大对象,它包含 40~50 个函数,每个函数 200~300 行。为了拆分它们,我创建了一个名为“fn”的文件夹,并将每个函数作为每个文件。每个文件名和函数名都是相同的。所以名为“foo”的函数默认导出到“fn”文件夹中名为“foo.js”的文件中。
现在我正在尝试将它们全部导入并将其导出为这样的单个对象。
src/fn/foo_or_whatever.js
export default function aFunctionWhichIUse(){
// return whatever;
}
src/fn/index.js
import foo from './foo';
import bar from './bar';
import fooz from './fooz';
import baz from './baz';
import kee from './kee';
import poo from './poo';
import tar from './tar';
import doo from './doo';
.
.
.
import foo_or_whatever from './foo_or_whatever';
export default {
foo,
bar,
fooz,
baz,
kee,
poo,
tar,
doo,
.
.
.
foo_or_whatever,
}
源代码/索引.js
import fn from './fn'
但我认为这没有意义。现在我必须每四次输入相同的单词才能在“fn”对象中添加一个函数。
我发现导入/导出系统不支持从文件夹导入所有文件。那么,我应该使用什么以及我应该如何编写代码来做到这一点?
有没有办法做到这一点?方式是否导入/导出系统无关紧要,只要该方式适用于webpack即可。
源代码/索引.js
import * as fn from './fn';
const fs = require('fs');
const path = require('path');
const basename = path.basename(__filename);
const functions = {}
fs
.readdirSync("./")
.filter(file => (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'))
.map((file) => {functions[file.slice(0, -3)] = require(path.join(__dirname, file})))
module.exports = functions;
这样的事情会有帮助吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句