You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

46 lines
2.0 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniMainJsPlugin = void 0;
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const usingComponents_1 = require("./usingComponents");
function uniMainJsPlugin(options = {}) {
const normalizeComponentName = options.normalizeComponentName || ((name) => name);
return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => {
return {
name: 'uni:mp-main-js',
enforce: 'pre',
async transform(source, id) {
if (opts.filter(id)) {
source = source.includes('createSSRApp')
? createApp(source)
: createLegacyApp(source);
const inputDir = process.env.UNI_INPUT_DIR;
const { imports } = await (0, uni_cli_shared_1.updateMiniProgramGlobalComponents)(id, (0, uni_cli_shared_1.parseProgram)(source, id, {
babelParserPlugins: options.babelParserPlugins,
}), {
inputDir,
resolve: this.resolve,
normalizeComponentName,
});
const { code, map } = await (0, uni_cli_shared_1.transformDynamicImports)(source, imports, {
id,
sourceMap: (0, uni_cli_shared_1.withSourcemap)(opts.resolvedConfig),
dynamicImport: usingComponents_1.dynamicImport,
});
return {
code: `import '\0plugin-vue:export-helper';import 'uni-mp-runtime';import './${uni_cli_shared_1.PAGES_JSON_JS}';` +
code,
map,
};
}
},
};
});
}
exports.uniMainJsPlugin = uniMainJsPlugin;
function createApp(code) {
return `${code};createApp().app.mount("#app");`;
}
function createLegacyApp(code) {
return code;
}