mainJs.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.uniMainJsPlugin = void 0;
  4. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  5. const usingComponents_1 = require("./usingComponents");
  6. function uniMainJsPlugin(options = {}) {
  7. const normalizeComponentName = options.normalizeComponentName || ((name) => name);
  8. return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => {
  9. return {
  10. name: 'uni:mp-main-js',
  11. enforce: 'pre',
  12. async transform(source, id) {
  13. if (opts.filter(id)) {
  14. source = source.includes('createSSRApp')
  15. ? createApp(source)
  16. : createLegacyApp(source);
  17. const inputDir = process.env.UNI_INPUT_DIR;
  18. const { imports } = await (0, uni_cli_shared_1.updateMiniProgramGlobalComponents)(id, (0, uni_cli_shared_1.parseProgram)(source, id, {
  19. babelParserPlugins: options.babelParserPlugins,
  20. }), {
  21. inputDir,
  22. resolve: this.resolve,
  23. normalizeComponentName,
  24. });
  25. const { code, map } = await (0, uni_cli_shared_1.transformDynamicImports)(source, imports, {
  26. id,
  27. sourceMap: (0, uni_cli_shared_1.withSourcemap)(opts.resolvedConfig),
  28. dynamicImport: usingComponents_1.dynamicImport,
  29. });
  30. return {
  31. code: `import '\0plugin-vue:export-helper';import 'uni-mp-runtime';import './${uni_cli_shared_1.PAGES_JSON_JS}';` +
  32. code,
  33. map,
  34. };
  35. }
  36. },
  37. };
  38. });
  39. }
  40. exports.uniMainJsPlugin = uniMainJsPlugin;
  41. function createApp(code) {
  42. return `${code};createApp().app.mount("#app");`;
  43. }
  44. function createLegacyApp(code) {
  45. return code;
  46. }