magix-combine
Version:
合并Magix View的html,js,css成一个js文件,并检测html,js,css中可能存在的问题
35 lines (33 loc) • 1.23 kB
JavaScript
/*
mx-view属性处理
*/
let attrUri = require('./tmpl-attr-uri');
//let tmplCmd = require('./tmpl-cmd');
let mxViewAttrReg = /\bmx-view\s*=\s*(['"])([^'"]*?)\1/;
let viewAttrReg = /\s(?:view-|\*)([\w\-@]*)=(["'])([\s\S]*?)\2/g;
//let mxViewParamsReg = /\bmx-params\s*=\s*(['"])([^'"]+?)\1/;
let cmdReg = /\u0007\d+\u0007/g;
module.exports = (e, match, refTmplCommands, toSrc) => {
if (mxViewAttrReg.test(match)) { //带有mx-view属性才处理
match.replace(mxViewAttrReg, (m, q, content) => {
let i = content.indexOf('?');
if (i > -1) {
content = content.slice(0, i);
}
cmdReg.lastIndex = 0;
if (!cmdReg.test(content)) {
if (!e.tmplMxViews) {
e.tmplMxViews = Object.create(null);
}
if (!e.tmplMxViews[content]) {
e.tmplMxViews[content] = 1;
e.tmplMxViewsArray = Object.keys(e.tmplMxViews);
}
} else {
cmdReg.lastIndex = 0;
}
});
return attrUri(match, e, 'view-', viewAttrReg, refTmplCommands, toSrc, mxViewAttrReg, 'mx-view');
}
return match;
};