uni-plugin-light
Version:
uni-app相关插件、loader及webpack基础配置
49 lines (43 loc) • 1.6 kB
JavaScript
;
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;