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
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; |
|
}
|
|
|