"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUniXPagePaths = exports.isUniXPageFile = exports.normalizeUniAppXAppConfig = exports.normalizeUniAppXAppPagesJson = void 0; const path_1 = __importDefault(require("path")); const shared_1 = require("@vue/shared"); const json_1 = require("../json"); const pages_1 = require("../pages"); const utils_1 = require("../../utils"); const uniRoutes_1 = require("../app/pages/uniRoutes"); const uniConfig_1 = require("./uniConfig"); const preprocess_1 = require("../../preprocess"); const utils_2 = require("../utils"); __exportStar(require("./manifest"), exports); function normalizeUniAppXAppPagesJson(jsonStr) { // 先条件编译 jsonStr = (0, preprocess_1.preUVueJson)(jsonStr, 'pages.json'); (0, utils_2.checkPagesJson)(jsonStr, process.env.UNI_INPUT_DIR); const pagesJson = { pages: [], globalStyle: {}, }; let userPagesJson = { pages: [], globalStyle: {}, }; try { // 此处不需要条件编译了 userPagesJson = (0, json_1.parseJson)(jsonStr, false, 'pages.json'); } catch (e) { console.error(`[vite] Error: pages.json parse failed.\n`, jsonStr, e); } // pages (0, pages_1.validatePages)(userPagesJson, jsonStr); userPagesJson.subPackages = userPagesJson.subPackages || userPagesJson.subpackages; // subPackages if (userPagesJson.subPackages) { userPagesJson.pages.push(...normalizeSubPackages(userPagesJson.subPackages)); } pagesJson.pages = userPagesJson.pages; // pageStyle normalizePages(pagesJson.pages); // globalStyle pagesJson.globalStyle = normalizePageStyle(userPagesJson.globalStyle); // tabBar if (userPagesJson.tabBar) { pagesJson.tabBar = userPagesJson.tabBar; } // condition if (userPagesJson.condition) { pagesJson.condition = userPagesJson.condition; } // uniIdRouter if (userPagesJson.uniIdRouter) { pagesJson.uniIdRouter = userPagesJson.uniIdRouter; } // 是否应该用 process.env.UNI_UTS_PLATFORM (0, pages_1.filterPlatformPages)(process.env.UNI_PLATFORM, pagesJson); // 缓存页面列表 pages_1.pagesCacheSet.clear(); pagesJson.pages.forEach((page) => pages_1.pagesCacheSet.add(page.path)); return pagesJson; } exports.normalizeUniAppXAppPagesJson = normalizeUniAppXAppPagesJson; function normalizeSubPackages(subPackages) { const pages = []; if ((0, shared_1.isArray)(subPackages)) { subPackages.forEach(({ root, pages: subPages }) => { if (root && subPages.length) { subPages.forEach((subPage) => { subPage.path = (0, utils_1.normalizePath)(path_1.default.join(root, subPage.path)); subPage.style = subPage.style; pages.push(subPage); }); } }); } return pages; } function normalizePages(pages) { pages.forEach((page) => { page.style = normalizePageStyle(page.style); }); } function normalizePageStyle(pageStyle) { if (pageStyle) { (0, shared_1.extend)(pageStyle, pageStyle['app']); (0, pages_1.removePlatformStyle)(pageStyle); return pageStyle; } return {}; } /** * TODO 应该闭包,通过globalThis赋值? * @param pagesJson * @param manifestJson * @returns */ function normalizeUniAppXAppConfig(pagesJson, manifestJson) { const uniConfig = (0, uniConfig_1.normalizeAppXUniConfig)(pagesJson, manifestJson); const tabBar = uniConfig.tabBar; delete uniConfig.tabBar; let appConfigJs = `const __uniConfig = ${JSON.stringify(uniConfig)}; __uniConfig.getTabBarConfig = () => {return ${tabBar ? JSON.stringify(tabBar) : 'undefined'}}; __uniConfig.tabBar = __uniConfig.getTabBarConfig(); const __uniRoutes = ${(0, uniRoutes_1.normalizeAppUniRoutes)(pagesJson)}.map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)).concat(typeof __uniSystemRoutes !== 'undefined' ? __uniSystemRoutes : []); `; if (process.env.UNI_UTS_PLATFORM === 'app-harmony') { appConfigJs += `globalThis.__uniConfig = __uniConfig; globalThis.__uniRoutes = __uniRoutes;`; } return appConfigJs; } exports.normalizeUniAppXAppConfig = normalizeUniAppXAppConfig; function isUniXPageFile(source, importer, inputDir = process.env.UNI_INPUT_DIR) { if (source.startsWith('@/')) { return (0, pages_1.isUniPageFile)(source.slice(2), inputDir); } if (source.startsWith('.')) { return (0, pages_1.isUniPageFile)(path_1.default.resolve(path_1.default.dirname(importer), source), inputDir); } return false; } exports.isUniXPageFile = isUniXPageFile; function getUniXPagePaths() { if (process.env.UNI_COMPILE_EXT_API_PAGE_PATHS) { return JSON.parse(process.env.UNI_COMPILE_EXT_API_PAGE_PATHS); } return Array.from(pages_1.pagesCacheSet); } exports.getUniXPagePaths = getUniXPagePaths;