getEntry.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const glob = require('glob');
  2. const config = require('../new-config.json');
  3. module.exports = (type = 'entry') => {
  4. let entry = {};
  5. let entryTemplateMap = {};
  6. let files = [];
  7. // 遍历用户配置的entry,讲最终的具体文件路径,放到files里
  8. config[type].map((item) => {
  9. if(typeof item === 'object') {
  10. glob.sync(item.entryPath).map((onePath) => {
  11. files.push({
  12. entryPath: onePath,
  13. template: item.template
  14. });
  15. });
  16. }
  17. else {
  18. files = files.concat(glob.sync(item));
  19. }
  20. });
  21. // 遍历files文件路径数组,处理数组生成最终符合webpack的entry
  22. files.map((item) => {
  23. let key = '';
  24. let entryPath = '';
  25. if(typeof item === 'object') {
  26. key = item.entryPath.replace('./src/', '').slice(0, -3);
  27. entryTemplateMap[key] = item.template;
  28. entryPath = item.entryPath;
  29. }
  30. else {
  31. key = item.replace('./src/', '').slice(0, -3);
  32. entryPath = item;
  33. }
  34. entry[key] = entryPath
  35. });
  36. return {
  37. entry,
  38. template: entryTemplateMap
  39. }
  40. }