You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ES5环境下如何简化文件夹文件导出,支持解构式require导入

自动批量导出extractors模块(ES5环境)

你可以通过Node.js的fs和path模块自动遍历文件夹内的文件,实现无需手动维护的批量导出,完美适配你的解构式导入需求。

直接替换extractors/index.js为以下代码:

const fs = require('fs');
const path = require('path');

const extractors = {};
// 遍历当前目录下所有文件
const files = fs.readdirSync(__dirname);

files.forEach(file => {
  // 跳过自身和非JS文件
  if (file === 'index.js' || path.extname(file) !== '.js') return;
  
  // 取文件名(不含后缀)作为导出键名
  const exportName = path.basename(file, '.js');
  // 导入目标模块
  const module = require(path.join(__dirname, file));
  
  // 将模块挂载到导出对象上
  extractors[exportName] = module;
});

module.exports = extractors;

方案说明

  • 自动适配新增文件:以后在extractors文件夹里新增.js文件,不需要修改index.js,会自动被纳入导出对象
  • 键名规则:导出的键名就是文件的名称(比如Account.js对应Account,Bitmoji.js对应Bitmoji,如果需要和你之前的AccountData一致,只要把文件名改成AccountData.js即可)
  • ES5完全兼容:全程使用CommonJS语法,没有用到任何ES6+特性,符合你的环境要求
  • 过滤规则:默认跳过index.js和非.js文件,如果有需要排除的其他文件,可以在if条件里添加额外判断(比如if (file === 'index.js' || file === 'temp.js' || ...))

使用方式

和你之前的用法完全一致,解构导入时直接用文件名对应的键即可:

const { Account, Bitmoji, Example } = require('./extractors');
// 调用函数
Account(data);

这样就彻底解决了手动维护导入导出的繁琐问题,新增模块时只需要添加文件即可。

内容的提问来源于stack exchange,提问作者Iserila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:45:46