mainJs.js 1.6 KB

123456789101112131415161718192021222324252627282930
  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. function uniMainJsPlugin() {
  6. return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => {
  7. return {
  8. name: 'uni:app-vue-main-js',
  9. enforce: 'pre',
  10. transform(code, id) {
  11. if (opts.filter(id)) {
  12. code = code.includes('createSSRApp')
  13. ? createApp(code)
  14. : createLegacyApp(code);
  15. return {
  16. code: `import './${uni_cli_shared_1.PAGES_JSON_JS}';` + code,
  17. map: { mappings: '' },
  18. };
  19. }
  20. },
  21. };
  22. });
  23. }
  24. exports.uniMainJsPlugin = uniMainJsPlugin;
  25. function createApp(code) {
  26. return `${code.replace('createSSRApp', 'createVueApp as createSSRApp')};const {app:__app__,Vuex:__Vuex__,Pinia:__Pinia__}=createApp();uni.Vuex=__Vuex__;uni.Pinia=__Pinia__;__app__.provide('__globalStyles', __uniConfig.styles);__app__._component.mpType='app';__app__._component.render=()=>{};__app__.mount("#app");`;
  27. }
  28. function createLegacyApp(code) {
  29. return `function createApp(rootComponent,rootProps){rootComponent.mpTye='app';rootComponent.render=()=>{};const app=createVueApp(rootComponent,rootProps);app.provide('__globalStyles', __uniConfig.styles);const oldMount=app.mount;app.mount=(container)=>{const appVm=oldMount.call(app,container);return appVm;};return app;};${code.replace('createApp', 'createVueApp')}`;
  30. }