gpt4 book ai didi

javascript - 通过读取 Node.js 中目录中的所有文件来动态导出模块

转载 作者:行者123 更新时间:2023-12-02 22:44:36 26 4
gpt4 key购买 nike

所以今天我尝试读取所有默认导出 来自某个包含 index.js 的目录。尝试将其包装在一个对象内,然后再次将其导出。有没有更好的方法来处理这个问题?

 export default (() => require('fs')
.readdirSync(__dirname)
.filter(fileName => !!/.js$/ig.test(fileName))
.map(fileName => fileName.split('.')[0])
.reduce((defaultExportObj, nextFileName) => {
try {
return {
...defaultExportObj,
[nextFileName]: require(__dirname + `/${nextFileName}`),
};
}catch(err) { throw err; }
}, {}))();

最佳答案

我想我会做这样的事情 - 不确定这是否更好 - 更好的是 ^^

webpack: require.context

function expDefault(path, mode = "sync"){

const modules = {}
const context = require.context(path, false, /\.js$/, mode)
context.keys().forEach(file => {
const name = fileName.replace(/^.+\/([^/]+)\.js$/, "$1")
modules[name] = context(name).default
})
return modules
}
export default expDefault(__dirname)

关于javascript - 通过读取 Node.js 中目录中的所有文件来动态导出模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58457014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com