首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成导出所有(数千)组件的index.js文件

生成导出所有(数千)组件的index.js文件
EN

Stack Overflow用户
提问于 2021-04-14 18:58:21
回答 2查看 105关注 0票数 1

在查看material-ui等库时,很明显,有某种脚本负责同时从index.js文件中导出数千个组件。

如果我们看一下here,我只能假设这个文件不是由人生成的(8k+导出)。

在我重新发明轮子之前,有没有一些标准库可以用来创建这些导出文件?或者是rollup或其他捆绑包动态创建的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-14 19:57:26

它们使用名为builder.js的自定义脚本导出所有图标组件。此脚本在您执行以下命令时运行:npm run src:icons。这里是相关的部分。

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2021-04-14 19:30:19

这个shell应该可以完成这项工作

代码语言:javascript
复制
for f in *.js; do
  echo "export { default as $f } from './$f'"
done

将输出重定向到一个文件,仅此而已

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67090405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档