nyx_server
Version:
Node内容发布
44 lines (39 loc) • 1.54 kB
JavaScript
;
/**
* requirejs的处理器
*/
var JsProcessorBase = require('./jsProcessor'); //处理器的基类
var matchRegex = function(){
return /["']+[^"']*["']+[\s]*:[\s]*["']+([^"']*)["']+/gi;
};
var RequireJsProcessor = function(){
JsProcessorBase.apply(this , arguments);
this.replaceContent = function(orgiContent , block , targetFileName , returnType){
//requirejs.config方式的paths不能带.js后缀,替换掉
targetFileName = targetFileName.replace('.js' ,'');
return orgiContent.replace(block.blockContent , targetFileName);
};
this.getBlocks = function(blockContent){
var blocks = blockContent.match(/requirejs.config(?:\r|\n|\s|\(\s*{)*paths(?:\r|\n|\s)*:(?:\r|\n|\s)*{([^}]*)}/gi); //得到paths的内容
var ret = [];
if(!blocks){
return ret;
}
for(var i=0 ; i<blocks.length ; i++){
var block = blocks[i];
var arr = block.match(matchRegex());
if(typeof arr !== 'undefined'){
for(var j=0 ; j<arr.length ; j++){
var c = arr[j];
var m = matchRegex().exec(c);
ret.push({
filePath : m[1]+".js",
blockContent : m[1]
});
}
}
}
return ret;
};
};
module.exports = RequireJsProcessor;