UNPKG

build-plugin-rax-app

Version:

The basic webpack configuration for rax project

113 lines 5.08 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var hasOwnProperty_1 = __importDefault(require("../utils/hasOwnProperty")); var logDeprecatedConfig_1 = __importDefault(require("../utils/logDeprecatedConfig")); var constants_1 = require("../constants"); var taskList = [ { name: constants_1.WEB, children: ['pha', 'ssr'], }, { name: constants_1.WEEX, }, { name: constants_1.KRAKEN, }, ]; [constants_1.MINIAPP, constants_1.WECHAT_MINIPROGRAM, constants_1.BYTEDANCE_MICROAPP].forEach(function (target) { taskList.push({ name: target, children: ["rax-compiled-components-".concat(target)], }); }); exports.default = (function (api) { var _a, _b; var context = api.context, modifyUserConfig = api.modifyUserConfig, cancelTask = api.cancelTask, log = api.log; var userConfig = context.userConfig; var originalTargets = userConfig.targets, webpack5 = userConfig.webpack5, swc = userConfig.swc; var devTargets = context.commandArgs.devTargets; var newUserConfig = __assign(__assign({}, userConfig), { webpack5: Boolean(webpack5) }); // Modify userConfig.targets if (devTargets) { var targets_1 = devTargets.split(','); newUserConfig.targets = targets_1; // Cancel task if (originalTargets.length > targets_1.length) { var removeTargets_1 = originalTargets.filter(function (target) { return !targets_1.includes(target); }); taskList.forEach(function (_a) { var name = _a.name, children = _a.children; if (removeTargets_1.includes(name)) { cancelTask(name); if (children) { children.forEach(function (childTask) { return cancelTask(childTask); }); } } }); } } // Modify web mpa config with pha if (userConfig.web && userConfig.web.pha) { newUserConfig.web = __assign(__assign({}, newUserConfig.web), { mpa: true }); } // Unify all targets mpa config var hasMPA = newUserConfig.targets.some(function (target) { return newUserConfig[target] && (newUserConfig[target].mpa || newUserConfig[target].buildType === 'webview'); }); if (hasMPA) { newUserConfig.targets // Avoid miniapp runtime mode be became MPA .filter(function (target) { return !constants_1.MINIAPP_PLATFORMS.includes(target); }) .forEach(function (target) { if (!newUserConfig[target]) { newUserConfig[target] = {}; } newUserConfig[target] = __assign(__assign({}, newUserConfig[target]), { mpa: true }); }); newUserConfig.mpa = true; // Warning tip when use miniapp runtime mode with MPA for (var _i = 0, _c = newUserConfig.targets; _i < _c.length; _i++) { var target = _c[_i]; if (constants_1.MINIAPP_PLATFORMS.includes(target) && !((_a = newUserConfig[target]) === null || _a === void 0 ? void 0 : _a.subpackages) && ((_b = newUserConfig[target]) === null || _b === void 0 ? void 0 : _b.buildType) !== 'webview') { log.error('小程序非分包模式不推荐和 MPA 应用同时使用,下一个大版本将禁止该能力!'); } } } // Deprecate in v4.0 // Minify options Object.keys(constants_1.DEPRECATED_CONFIG).forEach(function (deprecatedConfigKey) { if ((0, hasOwnProperty_1.default)(userConfig, deprecatedConfigKey)) { newUserConfig.minify = { type: constants_1.DEPRECATED_CONFIG[deprecatedConfigKey], options: newUserConfig[deprecatedConfigKey], }; (0, logDeprecatedConfig_1.default)(log, deprecatedConfigKey, "Please use \n".concat(JSON.stringify({ minify: newUserConfig.minify }, null, 2))); } }); if (swc) { // Modify minify config if (!(0, hasOwnProperty_1.default)(userConfig, 'minify')) { newUserConfig.minify = 'swc'; } // Warning in the cases that are not applicable if (newUserConfig.targets.some(function (target) { return constants_1.MINIAPP_PLATFORMS.includes(target); })) { log.warn('小程序构建暂未支持 swc,页面生命周期以及与原生混用能力将失效,后续将完善该场景'); } } modifyUserConfig(function () { return newUserConfig; }); }); //# sourceMappingURL=modify.js.map