UNPKG

uni-plugin-light

Version:

uni-app相关插件、loader及webpack基础配置

49 lines (43 loc) 1.6 kB
'use strict'; var tComm = require('t-comm'); var loaderUtils = require('loader-utils'); var PLATFORM_MAP = { MP_WX: 'mp-weixin', MP_QQ: 'mp-qq', H5: 'h5' }; 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;