module.exports = function(ret, conf, settings, opt){ console.log('parser-coffee:'); var pack = fis.config.get('coffee.pack', {}); var options = fis.config.get('coffee.settings', {}); var content = ''; var has_arr = []; if(pack.files && pack.files.length){ pack.files.forEach(function(path){ var file = ret.src['/' + path.replace(/^\//, '')]; if(file){ console.log("• " + file.subpath); has_arr.push(file.subpath); content += file.getContent() + '\n'; if(opt.pack) { //打包时不发布源文件 file.release = false; delete ret.src[file.subpath]; } } else { fis.log.warning('missing file [' + path + ']'); } }); } //create pack file var file = fis.file(fis.project.getProjectPath(pack.release || '/pkg/coffee.js')); options.filename = file.subpath; content = coffee.compile(content, options); if(options.sourceMap) { var sourceMap = JSON.stringify(content.sourceMap); if(opt.optimize && opt.pack){ //优化 且 打包 时,生成map文件 var sourceMapFile = fis.file(file.realpathNoExt + '.map'); sourceMapFile.setContent(sourceMap); ret.pkg[sourceMapFile.subpath] = sourceMapFile; //content.js += '//@ sourceMappingURL=' + sourceMapFile.getUrl(opt.hash, opt.domain); } content = content.js; } file.setContent(content); fis.compile(file); if(opt.optimize && opt.pack) { //优化 且 打包 时,写入map链接 content = file.getContent() + '//@ sourceMappingURL=' + sourceMapFile.getUrl(opt.hash, opt.domain); file.setContent(content); } ret.pkg[file.subpath] = file; //修改map.json文件 // ret.map = fis.config.get('browser.map'); ret.map.pkg[pack.release.substring(pack.release.lastIndexOf('/')+1) ] = { 'uri':pack.release, 'type':'js', 'has':has_arr }; };
module.exports = function(ret, conf, settings, opt){ console.log('concat-maxcms:'); var VAR_REG = /<%=(.*)%>/; var pack_opt = fis.config.get('maxcms-pack'); var content=''; var has_arr = []; for(var item in pack_opt){ content=''; var _files = pack_opt[item].files; for(var i in _files){ var _filepath = _files[i]; if(VAR_REG.test(_filepath)){ _filepath = _filepath.match(VAR_REG)[1]; _filepath = fis.config.get(_filepath); var file = ret.pkg[_filepath]; if(file){ content += file.getContent(); } }else{ var file = fis.file(fis.project.getProjectPath(_filepath)); if(file){ content += file.getContent(); } } has_arr.push( _filepath.replace(/^\//,'') ); } if(content){ var file = fis.file(fis.project.getProjectPath(pack_opt[item].release)); file.setContent(content); fis.compile(file); ret.pkg[file.subpath] = file; console.log("• ".green + file.subpath); // ret.map.pkg[item] = { // 'uri': pack_opt[item].release, // 'type':'js', // 'has':has_arr // }; ret.map.res[ pack_opt[item].release.replace(/^\//,'') ] = { 'uri': opt.hash ? file.getUrl(opt.hash, opt.domain) : pack_opt[item].release, 'type':'js', 'has':has_arr }; } } };