UNPKG

@tarojs/webpack-runner

Version:

webpack runner for taro

157 lines 7.76 kB
"use strict"; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var _AppHelper_appConfig, _AppHelper_pages, _AppHelper_pagesConfigList, _AppHelper_comps, _AppHelper_compsConfigList; Object.defineProperty(exports, "__esModule", { value: true }); exports.AppHelper = void 0; const helper_1 = require("@tarojs/helper"); const lodash_1 = require("lodash"); const path = require("path"); class AppHelper { constructor(entry = {}, options = {}) { _AppHelper_appConfig.set(this, void 0); _AppHelper_pages.set(this, void 0); _AppHelper_pagesConfigList.set(this, void 0); _AppHelper_comps.set(this, void 0); _AppHelper_compsConfigList.set(this, void 0); this.options = (0, lodash_1.defaults)(options || {}, { sourceDir: '', entryFileName: 'app', frameworkExts: helper_1.SCRIPT_EXT }); this.entry = entry; } get appEntry() { // Note: 不考虑 `() => Promise` 情况 const { entryFileName, sourceDir } = this.options; const appEntry = this.entry[entryFileName]; if (!appEntry) return path.join(sourceDir, entryFileName); if (Array.isArray(appEntry)) { return appEntry.filter(item => path.basename(item, path.extname(item)) === entryFileName)[0]; } else if (Array.isArray(appEntry.import)) { return appEntry.import.filter(item => path.basename(item, path.extname(item)) === entryFileName)[0]; } return appEntry; } get appConfig() { if (!__classPrivateFieldGet(this, _AppHelper_appConfig, "f")) { const appConfigPath = this.getConfigFilePath(this.appEntry); const appConfig = (0, helper_1.readConfig)(appConfigPath); if ((0, helper_1.isEmptyObject)(appConfig)) { throw new Error('缺少 app 全局配置,请检查!'); } __classPrivateFieldSet(this, _AppHelper_appConfig, appConfig, "f"); } return __classPrivateFieldGet(this, _AppHelper_appConfig, "f"); } get pages() { if (!__classPrivateFieldGet(this, _AppHelper_pages, "f")) { const appPages = this.appConfig.pages; if (!appPages || !appPages.length) { throw new Error('全局配置缺少 pages 字段,请检查!'); } const { frameworkExts, sourceDir } = this.options; __classPrivateFieldSet(this, _AppHelper_pages, new Set([ ...appPages.map(item => ({ name: item, path: (0, helper_1.resolveMainFilePath)(path.join(sourceDir, item), frameworkExts) })) ]), "f"); this.getSubPackages(); } return __classPrivateFieldGet(this, _AppHelper_pages, "f"); } get comps() { if (!__classPrivateFieldGet(this, _AppHelper_comps, "f")) { const appPages = this.appConfig.components; if (!appPages || !appPages.length) { throw new Error('全局配置缺少 components 字段,请检查!'); } const { frameworkExts, sourceDir } = this.options; __classPrivateFieldSet(this, _AppHelper_comps, new Set([ ...appPages.map(item => ({ name: item, path: (0, helper_1.resolveMainFilePath)(path.join(sourceDir, item), frameworkExts) })) ]), "f"); } return __classPrivateFieldGet(this, _AppHelper_comps, "f"); } getSubPackages() { const subPackages = this.appConfig.subPackages || this.appConfig.subpackages; const { frameworkExts, sourceDir } = this.options; if (subPackages && subPackages.length) { subPackages.forEach(item => { if (item.pages && item.pages.length) { const root = item.root; item.pages.forEach(page => { var _a; let pageItem = `${root}/${page}`; pageItem = pageItem.replace(/\/{2,}/g, '/'); let hasPageIn = false; this.pages.forEach(({ name }) => { if (name === pageItem) { hasPageIn = true; } }); if (!hasPageIn) { const pagePath = (0, helper_1.resolveMainFilePath)(path.join(sourceDir, pageItem), frameworkExts); this.pages.add({ name: pageItem, path: pagePath }); (_a = this.appConfig.pages) === null || _a === void 0 ? void 0 : _a.push(pageItem); } }); } }); } } get pagesConfigList() { if (!__classPrivateFieldGet(this, _AppHelper_pagesConfigList, "f")) { const list = new Map(); const pages = this.pages; pages.forEach(({ name, path }) => { const pageConfigPath = this.getConfigFilePath(path); list.set(name, pageConfigPath); }); __classPrivateFieldSet(this, _AppHelper_pagesConfigList, list, "f"); } return __classPrivateFieldGet(this, _AppHelper_pagesConfigList, "f"); } get compsConfigList() { if (!__classPrivateFieldGet(this, _AppHelper_compsConfigList, "f")) { const list = new Map(); const comps = this.comps; comps.forEach(({ name, path }) => { const pageConfigPath = this.getConfigFilePath(path); list.set(name, pageConfigPath); }); __classPrivateFieldSet(this, _AppHelper_compsConfigList, list, "f"); } return __classPrivateFieldGet(this, _AppHelper_compsConfigList, "f"); } getConfigFilePath(filePath = '') { // console.log('filePath: ', filePath) return (0, helper_1.resolveMainFilePath)(`${filePath.replace(path.extname(filePath), '')}.config`); } clear() { __classPrivateFieldSet(this, _AppHelper_appConfig, undefined, "f"); __classPrivateFieldSet(this, _AppHelper_pages, undefined, "f"); __classPrivateFieldSet(this, _AppHelper_pagesConfigList, undefined, "f"); } } exports.AppHelper = AppHelper; _AppHelper_appConfig = new WeakMap(), _AppHelper_pages = new WeakMap(), _AppHelper_pagesConfigList = new WeakMap(), _AppHelper_comps = new WeakMap(), _AppHelper_compsConfigList = new WeakMap(); //# sourceMappingURL=app.js.map