template.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.emitFile = exports.getTemplateFiles = exports.getFilterFiles = void 0;
  7. const path_1 = __importDefault(require("path"));
  8. const debug_1 = __importDefault(require("debug"));
  9. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  10. const renderjs_1 = require("../plugins/renderjs");
  11. const debugTemplate = (0, debug_1.default)('uni:mp-template');
  12. function getFilterFiles(resolvedConfig, getModuleInfo) {
  13. const filters = Object.create(null);
  14. const filtersCache = (0, renderjs_1.getFiltersCache)(resolvedConfig);
  15. if (!filtersCache.length) {
  16. return filters;
  17. }
  18. const inputDir = process.env.UNI_INPUT_DIR;
  19. function addFilter(id, filter) {
  20. const templateFilename = (0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizeMiniProgramFilename)(id, inputDir));
  21. (0, uni_cli_shared_1.addMiniProgramTemplateFilter)(templateFilename, filter);
  22. const filterFilename = (0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizeMiniProgramFilename)(filter.id, inputDir));
  23. if (templateFilename !== filterFilename) {
  24. // 外链
  25. filter.src = filterFilename;
  26. filters[filterFilename] = filter;
  27. }
  28. }
  29. filtersCache.forEach((filter) => {
  30. const moduleInfo = getModuleInfo(filter.id);
  31. if (!moduleInfo) {
  32. return;
  33. }
  34. const { importers } = moduleInfo;
  35. if (!importers.length) {
  36. return;
  37. }
  38. importers.forEach((importer) => addFilter(importer, filter));
  39. });
  40. return filters;
  41. }
  42. exports.getFilterFiles = getFilterFiles;
  43. function getTemplateFiles(template) {
  44. const files = (0, uni_cli_shared_1.findMiniProgramTemplateFiles)(template.filter?.generate);
  45. (0, uni_cli_shared_1.clearMiniProgramTemplateFiles)();
  46. return files;
  47. }
  48. exports.getTemplateFiles = getTemplateFiles;
  49. const emitFile = (emittedFile) => {
  50. if (emittedFile.type === 'asset') {
  51. const filename = emittedFile.fileName;
  52. (0, uni_cli_shared_1.addMiniProgramTemplateFile)((0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizeMiniProgramFilename)(path_1.default.relative(process.env.UNI_INPUT_DIR, filename))), emittedFile.source.toString());
  53. debugTemplate(filename);
  54. return filename;
  55. }
  56. return '';
  57. };
  58. exports.emitFile = emitFile;