更新
This commit is contained in:
+50
@@ -0,0 +1,50 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.uniMainJsPlugin = void 0;
|
||||
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
|
||||
const utils_1 = require("../utils");
|
||||
function uniMainJsPlugin() {
|
||||
return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => {
|
||||
let runSSR = false;
|
||||
return {
|
||||
name: 'uni:h5-main-js',
|
||||
enforce: 'pre',
|
||||
configResolved(config) {
|
||||
runSSR =
|
||||
(0, uni_cli_shared_1.isSsr)(config.command, config) || (0, utils_1.isSsrManifest)(config.command, config);
|
||||
},
|
||||
transform(code, id, options) {
|
||||
if (opts.filter(id)) {
|
||||
if (!runSSR) {
|
||||
code = code.includes('createSSRApp')
|
||||
? createApp(code)
|
||||
: createLegacyApp(code);
|
||||
}
|
||||
else {
|
||||
code = (0, utils_1.isSSR)(options)
|
||||
? createSSRServerApp(code)
|
||||
: createSSRClientApp(code);
|
||||
}
|
||||
code = `import './${uni_cli_shared_1.PAGES_JSON_JS}';${code}`;
|
||||
return {
|
||||
code,
|
||||
map: this.getCombinedSourcemap(),
|
||||
};
|
||||
}
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
exports.uniMainJsPlugin = uniMainJsPlugin;
|
||||
function createApp(code) {
|
||||
return `import { plugin as __plugin } from '@dcloudio/uni-h5';${code.replace('createSSRApp', 'createVueApp as createSSRApp')};createApp().app.use(__plugin).mount("#app");`;
|
||||
}
|
||||
function createLegacyApp(code) {
|
||||
return `import { plugin as __plugin } from '@dcloudio/uni-h5';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(__plugin)};${code.replace('createApp', 'createVueApp')}`;
|
||||
}
|
||||
function createSSRClientApp(code) {
|
||||
return `import { plugin as __plugin } from '@dcloudio/uni-h5';import { UNI_SSR, UNI_SSR_STORE } from '@dcloudio/uni-shared';${code};\n// @ts-ignore\nconst { 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"));`;
|
||||
}
|
||||
function createSSRServerApp(code) {
|
||||
return code;
|
||||
}
|
||||
Reference in New Issue
Block a user