mainJs.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 utils_1 = require("../utils");
  6. function uniMainJsPlugin() {
  7. return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => {
  8. let runSSR = false;
  9. return {
  10. name: 'uni:h5-main-js',
  11. enforce: 'pre',
  12. configResolved(config) {
  13. runSSR =
  14. (0, uni_cli_shared_1.isSsr)(config.command, config) || (0, utils_1.isSsrManifest)(config.command, config);
  15. },
  16. transform(code, id, options) {
  17. if (opts.filter(id)) {
  18. if (!runSSR) {
  19. code = code.includes('createSSRApp')
  20. ? createApp(code)
  21. : createLegacyApp(code);
  22. }
  23. else {
  24. code = (0, utils_1.isSSR)(options)
  25. ? createSSRServerApp(code)
  26. : createSSRClientApp(code);
  27. }
  28. code = `import './${uni_cli_shared_1.PAGES_JSON_JS}';${code}`;
  29. return {
  30. code,
  31. map: this.getCombinedSourcemap(),
  32. };
  33. }
  34. },
  35. };
  36. });
  37. }
  38. exports.uniMainJsPlugin = uniMainJsPlugin;
  39. function createApp(code) {
  40. return `import { plugin as __plugin } from '@dcloudio/uni-h5';${code.replace('createSSRApp', 'createVueApp as createSSRApp')};createApp().app.use(__plugin).mount("#app");`;
  41. }
  42. function createLegacyApp(code) {
  43. return `import { plugin as __plugin } from '@dcloudio/uni-h5';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(__plugin)};${code.replace('createApp', 'createVueApp')}`;
  44. }
  45. function createSSRClientApp(code) {
  46. return `import { plugin as __plugin } from '@dcloudio/uni-h5';import { UNI_SSR, UNI_SSR_STORE } from '@dcloudio/uni-shared';${code};const { app: __app, store: __store } = createApp();__app.use(__plugin);__store && window[UNI_SSR] && window[UNI_SSR][UNI_SSR_STORE] && __store.replaceState(window[UNI_SSR][UNI_SSR_STORE]);__app.router.isReady().then(() => __app.mount("#app"));`;
  47. }
  48. function createSSRServerApp(code) {
  49. return code;
  50. }