nyx_server
Version:
Node内容发布
38 lines (31 loc) • 1.09 kB
JavaScript
var path = require('path');
var fs = require('fs');
var _ = require('lodash'); //lodash
/**
* 块分析的表达式
*/
function regbuild(){
return /<!--\s*build:\s*([^\s]*)\s*([^\s]*)\s*(lib)*\s*(?:device:\s*([^\s]*))*\s*-->((\n|\r|.)*?)<!--\s*endbuild\s*-->/ig;
}
var getBlocks = function (content) {
var sections = [];
//得到build块
var blockMatchs = content.match(regbuild());
_.forEach(blockMatchs , function (block) {
var arr = regbuild().exec(block);
sections.push({
blockType:arr[1], //块类型
targetFilePath:arr[2], //发布文件
islib : arr[3] == 'lib',
blockDevice: arr[4], //设备类型
blockInnerContent: arr[5], //当前块内容 <!--buiid:xxx xxx --><!--endbuild>中内容
blockOuterContent:block //原始文件内容
});
});
return sections;
};
module.exports = function( filepath , config) {
this.content = fs.readFileSync(filepath).toString();
this.blocks = getBlocks(this.content , config);
};
;