47 lines
2.0 KiB
JavaScript
47 lines
2.0 KiB
JavaScript
"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;
|
|
}
|