我已经创建了react应用程序代码库,在该库中,我希望能够遍历嵌套的数据结构以导入一个特定文件。
我具有以下结构:
root.js
-modules
-- mod1
--- index.js
-- mod2
--- index.js
在root.js
中,我想遍历模块中的每个模块以导入index.js
,以便初始化数据将在应用程序的开始处运行。对我来说,尚不清楚最好的方法是最好的方法,如果有解决方案,最好不使用任何插件。
答案 0 :(得分:0)
我认为,您应该“手动”添加它们
// root.js
require('mod1.index')
require('mod2.index')
// ...
更清晰直接。除非您有100多个模块
编辑动态导入:
没有依赖建议(https://gist.github.com/kethinov/6658166#gistcomment-1603591的变体形式)
'use strict'
const fs = require('fs')
const walkSync = function (dir, filelist) {
const files = fs.readdirSync(dir)
filelist = filelist || []
files.forEach(function (file) {
if (fs.statSync(dir + '/' + file).isDirectory()) {
filelist = walkSync(dir + '/' + file, filelist)
} else {
filelist.push(dir + '/' + file)
}
})
return filelist
}
allFiles = walkSync('./src')
allFiles.filter(f => f.split('/').pop() == 'index.js').forEach(f => require(f))
答案 1 :(得分:0)
结果很简单:
导出modules.js
文件中的所有内容。
const req = require.context('./', true, /^\.\/[a-zA-Z0-9]+\/index.js$/);
const modules = req.keys().map(req);
module.exports = modules;
然后将modules.js
文件导入到某个root.js
文件中。