function combineSpriteTasks(spriteTaskArray) {

    var combinedStyleSheetArray = [],
        combinedStyleObjList = {
            length: 0
        },
        combinedFileName,
        combinedSpriteTask;

    //combinedFileName = DEFAULT_COMBINE_CSS_NAME;
    //output.combine  扩展配置类型, 可以指定输出的文件名, 如: "combine": "exam_all.css" , 精灵图则为: sprite_exam_all.png
    combinedFileName = typeof spriteConfig.output.combine == 'string' ? spriteConfig.output.combine : DEFAULT_COMBINE_CSS_NAME;
    // combineFileName = path.resolve(combineFileName);

    spriteTaskArray.forEach(function(spriteTask) {

        // var spriteTask = { // an SpriteTask
        //     cssFileName: cssFileName, // css 文件的路径
        //     styleSheet: readStyleSheet(cssFileName), // css 文件的内容
        //     styleObjList: null, // 搜集到的需要合并图片的样式和相关图片信息(大小宽高等)
        // };

        var styleObjList = spriteTask.styleObjList,
            styleObj,
            existSObj;

        for (var url in styleObjList) {
            if (url === 'length') {
                continue;
            }
            styleObj = styleObjList[url];
            if (existSObj = combinedStyleObjList[url]) {
                existSObj.cssRules = existSObj.cssRules.concat(styleObj.cssRules);
            } else {
                combinedStyleObjList[url] = styleObj;
                combinedStyleObjList.length++;
            }
        }

        combinedStyleSheetArray.push(spriteTask.styleSheet);
    });

    combinedSpriteTask = {
        cssFileName: combinedFileName,
        styleSheetArray: combinedStyleSheetArray,
        styleObjList: combinedStyleObjList
    }

    return [combinedSpriteTask];
}
function combineSpriteTasks(spriteTaskArray) {

    var combinedStyleSheetArray = [],
        combinedStyleObjList = {
            length: 0
        },
        combinedFileName,
        combinedSpriteTask;

    
    
    combinedFileName = typeof spriteConfig.output.combine == 'string' ? spriteConfig.output.combine : DEFAULT_COMBINE_CSS_NAME;
    

    spriteTaskArray.forEach(function(spriteTask) {

        
        
        
        
        

        var styleObjList = spriteTask.styleObjList,
            styleObj,
            existSObj;

        for (var url in styleObjList) {
            if (url === 'length') {
                continue;
            }
            styleObj = styleObjList[url];
            if (existSObj = combinedStyleObjList[url]) {
                existSObj.cssRules = existSObj.cssRules.concat(styleObj.cssRules);
            } else {
                combinedStyleObjList[url] = styleObj;
                combinedStyleObjList.length++;
            }
        }

        combinedStyleSheetArray.push(spriteTask.styleSheet);
    });

    combinedSpriteTask = {
        cssFileName: combinedFileName,
        styleSheetArray: combinedStyleSheetArray,
        styleObjList: combinedStyleObjList
    }

    return [combinedSpriteTask];
}
function combineSpriteTasks ( spriteTaskArray ) { var combinedStyleSheetArray = [ ] , combinedStyleObjList = { length : 0 } , combinedFileName , combinedSpriteTask ; //combinedFileName = DEFAULT_COMBINE_CSS_NAME; //output.combine  扩展配置类型, 可以指定输出的文件名, 如: "combine": "exam_all.css" , 精灵图则为: sprite_exam_all.png combinedFileName = typeof spriteConfig . output . combine == 'string' ? spriteConfig . output . combine : DEFAULT_COMBINE_CSS_NAME ; // combineFileName = path.resolve(combineFileName); spriteTaskArray . forEach ( function ( spriteTask ) { // var spriteTask = { // an SpriteTask //     cssFileName: cssFileName, // css 文件的路径 //     styleSheet: readStyleSheet(cssFileName), // css 文件的内容 //     styleObjList: null, // 搜集到的需要合并图片的样式和相关图片信息(大小宽高等) // }; var styleObjList = spriteTask . styleObjList , styleObj , existSObj ; for ( var url in styleObjList ) { if ( url === 'length' ) { continue ; } styleObj = styleObjList [ url ] ; if ( existSObj = combinedStyleObjList [ url ] ) { existSObj . cssRules = existSObj . cssRules . concat ( styleObj . cssRules ) ; } else { combinedStyleObjList [ url ] = styleObj ; combinedStyleObjList . length ++ ; } } combinedStyleSheetArray . push ( spriteTask . styleSheet ) ; } ) ; combinedSpriteTask = { cssFileName : combinedFileName , styleSheetArray : combinedStyleSheetArray , styleObjList : combinedStyleObjList } return [ combinedSpriteTask ] ; }
**************************************************************** 6. 合并所有 spriteTask **************************************************************** 
合并所有 spriteTask
@param  {Array} spriteTaskArray
@return {Array} 转换后的 SpriteTask 数组, 只会包含一个 SpriteTask
**************************************************************** 6 . 合并所有 spriteTask **************************************************************** 合并所有 spriteTask