docs: function combineAndCompress() {
  		response.write('<br/>');
  		var common_js = prj_conf.common_js,
  			use_common = !!common_js,
  			commoned,
  			commoned_list;
  		if (use_common) {
  			calcDependList('main/'+common_js);
  			commoned = depended;
  			commoned_list = depended_list;
  		}
  
  		var main_files = [];
  		readMainFiles(prj_path+'main', main_files);
  		main_len = main_files.length;
  		
  		var i = 0, j, main_file;
  		for (; i < main_len; i++) {
  			main_file = main_files[i];
  			response.write('<br/>=== 正在合并和压缩文件 '+main_file+
  				' 　--- '+(main_len - i));
  			main_len-i===1 && response.write('<br/>正在努力压缩ing ...');
  			abc_allname.push(main_file);
  			calcing = {};
  			depended = {};
  			depended_list = [];
  			if (use_common) {
  				if (main_file===common_js) { //公共文件单独处理
  					depended_list = commoned_list;
  				} else {
  					for (j in commoned) {
  						depended[j] = true;
  					}
  					calcDependList('main/'+main_file);
  				}
  			} else {
  				calcDependList('main/'+main_file);
  			}
  
  			//合并文件
  			var j = 0, dl = depended_list.length,
  				fd = fs.openSync(path_main+main_file, 'w', '0666'),
  				position = fs.writeSync(fd, br_mok, 0, charset);
  			for (; j < dl; j++) { //必须正序
  				position += fs.writeSync(fd, '\r\n'+all_files[depended_list[j]],
  					position, charset);
  			}
  			fs.writeSync(fd, '\r\nrequire("main/'+main_file.slice(0, -3)+'");\r\n',
  				position, charset);
  			fs.closeSync(fd);
  			
  			compressFile(main_file);
  		}
  	}