UNPKG

isv-page-json-to-xtpl

Version:

abs 将页面 json 转换成 html

66 lines (58 loc) 2.1 kB
var _ = require('lodash'); var util = require('../../util'); module.exports = { replaceSolutionAssets:function(xtpl,options){ options = _.extend({ isDev: false }, options); var framework = options.framework; var formattedAssets = util.formatAssets(framework); xtpl = xtpl.replace('{{frameworkCss}}', formattedAssets.css[0] || ''); if (formattedAssets.js.length > 0) { var js = formattedAssets.js[0]; //xtrl pc 下替换xctrl-kissy if(options.terminalType === 'pc'){ js = js.replace('xctrl-kimi','xctrl-kissy'); } if (options.isDev) { //框架调试,解除 combo var jsUrls = js.split('??'); var jsNames = jsUrls[1].split(','); var scripts = []; jsNames.forEach(function(name) { scripts.push('<script src="' + jsUrls[0] + name + '"></script>'); }); xtpl = xtpl.replace('<script src="{{frameworkJs}}"></script>', scripts.join('\n')); } else { xtpl = xtpl.replace('{{frameworkJs}}', js); } } var scripts = []; _.map(framework.js,function(js){ scripts = scripts.concat(js); }); _.each(scripts,function(path){ if(/kg\/pi\/(\S+)\/pi-kissy/.test(path)){ var alias = "define('kg/pi/pi-kissy', ['kg/pi/"+RegExp.$1+"/pi-kissy'],function(require, exports, module){ module.exports = require('kg/pi/"+RegExp.$1+"/pi-kissy'); });"; xtpl = xtpl.replace(/\{\{alias\}\}/g, alias); } }); //种子资源的特殊处理 var seed = options.seed; if(seed){ var seedContent = util.comboAssets(['kimi','mmd','kissy-mod-define'],seed); if(seedContent.js['g.alicdn.com']){ xtpl = xtpl.replace('{{frameworkSeedJs}}', seedContent.js['g.alicdn.com']); } //pc 页面特殊的注入 if(options.terminalType === 'pc'){ var fizAssetsContent = util.comboAssets(['fiz-assets'],seed); if(fizAssetsContent.js['g.alicdn.com']){ xtpl = xtpl.replace('{{fizAssetsJs}}', fizAssetsContent.js['g.alicdn.com']); } if(fizAssetsContent.css['g.alicdn.com']){ xtpl = xtpl.replace('{{fizAssetsCss}}', fizAssetsContent.css['g.alicdn.com']); } } } return xtpl; } };