通常,我会创建一个index.js文件,用于导出特定目录中每个文件的所有内容,如下所示:
export * from "./file1"
export * from "./file2"
export * from "./file3"
这是我所有项目中的常见模式。这种方法的缺点是,每当我在目录中创建一个新文件时,我都必须更改其对应的index.js文件并导出新文件。现在,我尝试将其自动化,并编写一个脚本来导出目录中每个文件中的所有内容。
在谷歌上搜索了一下,我找到了这个:
import fs from "fs";
export let exp = {};
fs.readdirSync("./").forEach(function (file) {
if (file.indexOf(".js") > -1 && file != "index.js") {
const imp = require(`./` + file);
exp = { ...exp, ...imp };
}
});
但是它不起作用,可能是因为我使用了require
函数,而它不适用于ES模块。
另外,我不能写这样的东西,因为我不允许在功能块中使用export
。
export let exp = {};
fs.readdirSync("./").forEach(function (file) {
if (file.indexOf(".ts") > -1 && file != "index.ts") {
export * from ("./"+file);
}
});
所以我在这里进货。你有什么想法吗?
1条答案
按热度按时间wmtdaxz31#
我建议使用像glob这样的包。glob包允许您获取目录中的所有文件,包括隐藏在子文件夹中的文件。
示例用法: