在查看material-ui等库时,很明显,有某种脚本负责同时从index.js文件中导出数千个组件。
如果我们看一下here,我只能假设这个文件不是由人生成的(8k+导出)。
在我重新发明轮子之前,有没有一些标准库可以用来创建这些导出文件?或者是rollup或其他捆绑包动态创建的?
发布于 2021-04-14 19:57:26
它们使用名为builder.js的自定义脚本导出所有图标组件。此脚本在您执行以下命令时运行:npm run src:icons。这里是相关的部分。
async function generateIndex(options) {
const files = await globAsync(path.join(options.outputDir, '*.js'));
const index = files
.map((file) => {
const typename = path.basename(file).replace('.js', '');
return `export { default as ${typename} } from './${typename}';\n`;
})
.join('');
await fse.writeFile(path.join(options.outputDir, 'index.js'), index);
}options.outputDir是包含所有组件文件的目录,在本例中为packages/material-ui-icons/src
发布于 2021-04-14 19:30:19
这个shell应该可以完成这项工作
for f in *.js; do
echo "export { default as $f } from './$f'"
done将输出重定向到一个文件,仅此而已
https://stackoverflow.com/questions/67090405
复制相似问题