diff --git a/packages/webpack-uni-pages-loader/lib/platforms/mp-alipay.js b/packages/webpack-uni-pages-loader/lib/platforms/mp-alipay.js index cff4d5ae165ea79699136305035fa5eda507680c..0755b7a91be5434fd357340e8f1078ac6dd2b452 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/mp-alipay.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/mp-alipay.js @@ -44,6 +44,41 @@ function copyToJson (json, fromJson, options) { }) } +function parseCondition (pagesJson) { + const condition = pagesJson.condition + const launchPagePath = process.env.UNI_CLI_LAUNCH_PAGE_PATH || '' + const launchPageQuery = process.env.UNI_CLI_LAUNCH_PAGE_QUERY || '' + const launchPageOptions = { + title: launchPagePath, + page: launchPagePath, + pageQuery: launchPageQuery + } + const compileModeJson = { + modes: [] + } + if (condition && Array.isArray(condition.list) && condition.list.length) { + compileModeJson.modes = condition.list.map(item => { + return { + title: item.name, + page: item.path, + pageQuery: item.query + } + }) + delete pagesJson.condition + } + if (launchPagePath) { + compileModeJson.modes = [launchPageOptions] + } + const miniIdeDir = path.join(process.env.UNI_OUTPUT_DIR, '.mini-ide') + if (!fs.existsSync(miniIdeDir)) { + fs.mkdirSync(miniIdeDir, { recursive: true }) + fs.writeFileSync( + path.join(miniIdeDir, 'compileMode.json'), + JSON.stringify(compileModeJson, null, 2) + ) + } +} + const projectKeys = ['component2', 'enableAppxNg'] module.exports = function (pagesJson, manifestJson) { @@ -101,6 +136,8 @@ module.exports = function (pagesJson, manifestJson) { project.enableAppxNg = hasOwn(platformJson, 'enableAppxNg') ? platformJson.enableAppxNg : true } + parseCondition(pagesJson) + return [{ name: 'app', content: app diff --git a/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/index.js b/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/index.js index 64a72e6a09ca52702738a5d78d1404bc5f1e0887..89214697713ea0d73f73898fdc810e6888799d13 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/index.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/index.js @@ -6,9 +6,19 @@ module.exports = function (pagesJson, manifestJson) { const content = project.content - if (content.condition && content.condition.miniprogram) { - content.condition.swan = content.condition.miniprogram - delete content.condition.miniprogram + const miniprogram = content.condition && content.condition.miniprogram + if (miniprogram && Array.isArray(miniprogram.list) && miniprogram.list.length) { + content['compilation-args'].options = miniprogram.list.map((item) => { + return { + id: item.id, + text: item.name, + extra: { + index: item.pathName, + query: item.query + } + } + }) + delete content.condition } project.name = 'project.swan' @@ -16,4 +26,4 @@ module.exports = function (pagesJson, manifestJson) { app, project ] -} +} diff --git a/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/project.swan.json b/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/project.swan.json index 9d9d00e8c48abbc8f84ca8ae8e10442f2dbcae2b..570bd8faf94f92443cfdce730e6f08794d78e83d 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/project.swan.json +++ b/packages/webpack-uni-pages-loader/lib/platforms/mp-baidu/project.swan.json @@ -1,5 +1,8 @@ { "appid": "", + "compilation-args": { + "selected": -3 + }, "appInfo": {}, "appkey": "", "condition": {}, @@ -7,4 +10,4 @@ "urlCheck": true }, "libVersion": "" -} +}