buildPluginEsbuild.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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.createEsbuildRenderChunkPlugin = exports.createEsbuildPlugin = void 0;
  7. const fs_extra_1 = __importDefault(require("fs-extra"));
  8. const esbuildService_1 = require("../esbuildService");
  9. exports.createEsbuildPlugin = async (jsx = 'vue') => {
  10. const jsxConfig = esbuildService_1.resolveJsxOptions(jsx);
  11. return {
  12. name: 'vite:esbuild',
  13. resolveId(id) {
  14. if (id === esbuildService_1.vueJsxPublicPath) {
  15. return esbuildService_1.vueJsxPublicPath;
  16. }
  17. },
  18. load(id) {
  19. if (id === esbuildService_1.vueJsxPublicPath) {
  20. return fs_extra_1.default.readFileSync(esbuildService_1.vueJsxFilePath, 'utf-8');
  21. }
  22. },
  23. async transform(code, id) {
  24. const isVueTs = /\.vue\?/.test(id) && id.endsWith('lang.ts');
  25. if (esbuildService_1.tjsxRE.test(id) || isVueTs) {
  26. return esbuildService_1.transform(code, id, {
  27. ...jsxConfig,
  28. ...(isVueTs ? { loader: 'ts' } : null)
  29. }, jsx);
  30. }
  31. }
  32. };
  33. };
  34. exports.createEsbuildRenderChunkPlugin = (target, minify) => {
  35. return {
  36. name: 'vite:esbuild-transpile',
  37. async renderChunk(code, chunk) {
  38. return esbuildService_1.transform(code, chunk.fileName, {
  39. target,
  40. minify
  41. });
  42. }
  43. };
  44. };
  45. //# sourceMappingURL=buildPluginEsbuild.js.map