ala-cli
Version:
aladdin develop utils
54 lines (44 loc) • 1.18 kB
JavaScript
/**
*
* @file vue编译缓存工具
* @author chenrui09
* @date 2017/5/9
*
*/
const vipRender = require('vip-server-renderer');
let vueResultCache = {};
function cache (key, content) {
if (!vueResultCache[key] && content) {
vueResultCache[key] = vipRender.compile({
content: content,
mode: 'amd',
jsPath(path, tmpVal) {
return 'static/' + tmpVal.replace('../', '');
},
phpPath(tmpPath, tmpVal) {
return 'aladdin/' + tmpVal.replace('../', '') + '.php';
}
});
}
return vueResultCache[key];
}
function clearCache () {
vueResultCache = {};
}
function getRender (key) {
let result = cache(key);
let props = result.props;
let template = '';
let renderer;
props.forEach((prop) => {
template += ':' + prop + '=' + prop + ' ';
});
template = '<App ' + template + '/>';
renderer = vipRender.getRender(template);
return renderer;
}
module.exports = {
cache: cache,
clearCache: clearCache,
getRender: getRender
}