UNPKG

nyx_server

Version:

Node内容发布

38 lines (31 loc) 1.09 kB
"use strict"; 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); };