UNPKG

plugin-light

Version:

Webpack 相关插件、Loader、基础配置及 CLI 命令

61 lines (55 loc) 1.86 kB
'use strict'; var tComm = require('t-comm'); var loaderUtils = require('loader-utils'); var PLATFORM_MAP = { MP_WX: 'mp-weixin', MP_QQ: 'mp-qq', MP_ALIPAY: 'mp-alipay', H5: 'h5' }; var CSS_MAP = { MP_WX: '.wxss', MP_QQ: '.qss', MP_ALIPAY: '.acss', MP_JD: '.jxss' }; // TODO: 类型补充 Object.keys(CSS_MAP).reduce(function (acc, item) { acc[item] = CSS_MAP[item].slice(1); return acc; }, {}); var ALL_PLATFORM = 'ALL'; function shouldUseLoader() { var defaultPlatforms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var options = loaderUtils.getOptions(this) || {}; var _options$platforms = options.platforms, platforms = _options$platforms === void 0 ? defaultPlatforms : _options$platforms; var platform = process.env.UNI_PLATFORM || ''; if (platforms === ALL_PLATFORM || platforms.indexOf(ALL_PLATFORM) > -1) { return true; } return platforms.includes(platform); } var PLATFORMS_MP = [PLATFORM_MAP.MP_WX, PLATFORM_MAP.MP_QQ]; var PLATFORMS_ALL = [PLATFORM_MAP.MP_WX, PLATFORM_MAP.MP_QQ, PLATFORM_MAP.H5]; function replaceTmpTag(source) { tComm.replaceAllPolyfill(); if (!shouldUseLoader.call(this, PLATFORMS_ALL)) return source; var options = loaderUtils.getOptions(this) || {}; var _options$replaceTmpTa = options.replaceTmpTagMap, replaceTmpTagMap = _options$replaceTmpTa === void 0 ? {} : _options$replaceTmpTa; var type = PLATFORMS_MP.includes(process.env.UNI_PLATFORM || '') ? 'mp' : 'web'; var keys = Object.keys(replaceTmpTagMap); var res = source; // eslint-disable-next-line @typescript-eslint/prefer-for-of for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = replaceTmpTagMap[key][type]; if (!value) { continue; } res = res.replaceAll(key, value); } return res; } module.exports = replaceTmpTag;