uni-ticket-system/node_modules/@dcloudio/uni-cli-shared/dist/json/mp/project.js

106 lines
3.5 KiB
JavaScript
Raw Normal View History

2023-12-05 02:11:10 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseMiniProgramProjectJson = exports.isMiniProgramProjectJsonKey = void 0;
const shared_1 = require("@vue/shared");
const merge_1 = require("merge");
const json_1 = require("../json");
const projectKeys = [
'appid',
'setting',
'miniprogramRoot',
'cloudfunctionRoot',
'qcloudRoot',
'pluginRoot',
'compileType',
'libVersion',
'projectname',
'packOptions',
'debugOptions',
'scripts',
'cloudbaseRoot',
];
function isMiniProgramProjectJsonKey(name) {
return projectKeys.includes(name);
}
exports.isMiniProgramProjectJsonKey = isMiniProgramProjectJsonKey;
function parseMiniProgramProjectJson(jsonStr, platform, { template, pagesJson }) {
const projectJson = JSON.parse(JSON.stringify(template));
const manifestJson = (0, json_1.parseJson)(jsonStr);
if (manifestJson) {
projectJson.projectname = manifestJson.name;
const platformConfig = manifestJson[platform];
if (platformConfig) {
projectKeys.forEach((name) => {
if ((0, shared_1.hasOwn)(platformConfig, name)) {
if ((0, shared_1.isPlainObject)(platformConfig[name]) &&
(0, shared_1.isPlainObject)(projectJson[name])) {
;
projectJson[name] = (0, merge_1.recursive)(true, projectJson[name], platformConfig[name]);
}
else {
;
projectJson[name] = platformConfig[name];
}
}
});
// 使用了微信小程序手势系统,自动开启 ES6=>ES5
platform === 'mp-weixin' &&
weixinSkyline(platformConfig) &&
openES62ES5(projectJson);
}
}
// 其实仅开发期间 condition 生效即可,暂不做判断
const miniprogram = parseMiniProgramCondition(pagesJson);
if (miniprogram) {
if (!projectJson.condition) {
projectJson.condition = {};
}
projectJson.condition.miniprogram = miniprogram;
}
if (!projectJson.appid) {
projectJson.appid = 'touristappid';
}
return projectJson;
}
exports.parseMiniProgramProjectJson = parseMiniProgramProjectJson;
function weixinSkyline(config) {
return (config.renderer === 'skyline' &&
config.lazyCodeLoading === 'requiredComponents');
}
function openES62ES5(config) {
if (!config.setting) {
config.setting = {};
}
if (!config.setting.es6) {
config.setting.es6 = true;
}
}
function parseMiniProgramCondition(pagesJson) {
const launchPagePath = process.env.UNI_CLI_LAUNCH_PAGE_PATH || '';
if (launchPagePath) {
return {
current: 0,
list: [
{
id: 0,
name: launchPagePath,
pathName: launchPagePath,
query: process.env.UNI_CLI_LAUNCH_PAGE_QUERY || '', // 启动参数在页面的onLoad函数里面得到。
},
],
};
}
const condition = pagesJson.condition;
if (!condition || !(0, shared_1.isArray)(condition.list) || !condition.list.length) {
return;
}
condition.list.forEach(function (item, index) {
item.id = item.id || index;
if (item.path) {
item.pathName = item.path;
delete item.path;
}
});
return condition;
}