diff --git a/packages/uni-cli-shared/lib/pages.js b/packages/uni-cli-shared/lib/pages.js index 9a1dfed8de94b2cea640678f41fd740117c4fecf..57008686d3cbdf8bae958df54a569eeae90e0e00 100644 --- a/packages/uni-cli-shared/lib/pages.js +++ b/packages/uni-cli-shared/lib/pages.js @@ -82,9 +82,9 @@ function processPagesJson (pagesJson, loader = { }) } - if (Object.keys(uniNVuePages).length) { // 直接挂在 pagesJson 上 + if (uniNVuePages.length) { // 直接挂在 pagesJson 上 pagesJson.nvue = { - pages: uniNVuePages + pages: uniNVuePages.reverse() } if (uniNVueEntryPagePath) { pagesJson.nvue.entryPagePath = uniNVueEntryPagePath @@ -152,9 +152,10 @@ function isValidPage (page, root = '') { // process.UNI_NVUE_ENTRY[pagePath] = path.resolve(process.env.UNI_INPUT_DIR, pagePath + '.nvue') + '?entry' // } - uniNVuePages[pagePath + '.html'] = { - 'window': page.style || {} - } + uniNVuePages.push({ + 'path': pagePath + '.html', + 'style': page.style || {} + }) return false } @@ -176,7 +177,7 @@ function getNVueMainJsPath (page) { process.UNI_ENTRY = {} process.UNI_NVUE_ENTRY = {} -let uniNVuePages = {} +const uniNVuePages = [] function parsePages (pagesJson, pageCallback, subPageCallback) { if (!pagesJson) { @@ -215,7 +216,7 @@ function parseEntry (pagesJson) { process.UNI_NVUE_ENTRY['app-service'] = path.resolve(process.env.UNI_INPUT_DIR, getMainEntry()) } - uniNVuePages = {} + uniNVuePages.length = 0 if (!pagesJson) { pagesJson = getPagesJson() // 会检测修改 nvue entry diff --git a/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js b/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js index 92080304040ca3a7dcbff717c6be5bce235ade19..fbe35b285313f3ef7f35ef1db26840681f783e10 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js @@ -128,12 +128,14 @@ module.exports = function (pagesJson, userManifestJson) { const nvuePages = pagesJson.nvue && pagesJson.nvue.pages - const nvuePagePaths = Object.keys(nvuePages || {}) - if (nvuePagePaths.length) { + if (nvuePages.length) { const pages = {} - nvuePagePaths.forEach(nvuePagePath => { - pages[nvuePagePath] = { - 'window': parseStyle(pagesJson.nvue.pages[nvuePagePath]['window'] || {}), + nvuePages.forEach(({ + path, + style + }) => { + pages[path] = { + 'window': parseStyle(style), 'nvue': true } }) @@ -319,7 +321,7 @@ module.exports = function (pagesJson, userManifestJson) { // networkTimeout normalizeNetworkTimeout(appJson) appJson.page = Object.create(null) - appJson.pages = Object.keys(appJson.nvue.pages).reverse().map(pagePath => { + appJson.pages = Object.keys(appJson.nvue.pages).map(pagePath => { const newPagePath = pagePath.replace('.html', '') appJson.page[newPagePath] = { window: appJson.nvue.pages[pagePath].window, diff --git a/packages/webpack-uni-pages-loader/lib/platforms/mp.js b/packages/webpack-uni-pages-loader/lib/platforms/mp.js index c2074718408985442693b77ee80ccb685576ed2a..c8e95c52ae8ca63c6191d9ca8982061ab5ffb1a3 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/mp.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/mp.js @@ -44,7 +44,9 @@ const pagesJson2AppJson = { fromJson && fromJson.nvue && fromJson.nvue.pages && - fromJson.nvue.pages[page.pagePath + '.html'] + fromJson.nvue.pages.find(({ + path + }) => path === (page.pagePath + '.html')) ) ) { console.error(