Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

45 строки
1007 B

  1. module.exports = {
  2. name: "xhiveframework-html",
  3. setup(build) {
  4. let path = require("path");
  5. let fs = require("fs/promises");
  6. build.onResolve({ filter: /\.html$/ }, (args) => {
  7. return {
  8. path: path.join(args.resolveDir, args.path),
  9. namespace: "xhiveframework-html",
  10. };
  11. });
  12. build.onLoad({ filter: /.*/, namespace: "xhiveframework-html" }, (args) => {
  13. let filepath = args.path;
  14. let filename = path.basename(filepath).split(".")[0];
  15. return fs
  16. .readFile(filepath, "utf-8")
  17. .then((content) => {
  18. content = scrub_html_template(content);
  19. return {
  20. contents: `\n\txhiveframework.templates['${filename}'] = \`${content}\`;\n`,
  21. watchFiles: [filepath],
  22. };
  23. })
  24. .catch(() => {
  25. return {
  26. contents: "",
  27. warnings: [
  28. {
  29. text: `There was an error importing ${filepath}`,
  30. },
  31. ],
  32. };
  33. });
  34. });
  35. },
  36. };
  37. function scrub_html_template(content) {
  38. content = content.replace(/`/g, "\\`");
  39. return content;
  40. }