docs: function runCSSTaskStream(gulp, s, config, startFun, endFun) {
      if(s.__dest) {
          var dest = s.__dest;
      }
      else {
          var cssDestPath = path.resolve(config.root, config.dest || '', config.cssDest || ''); //css目标构建目录
          var dest = path.join(cssDestPath, s.dest || '');
      }
  
      var stream = gulp.src(s.source || s, {cwd:config.root, base: s.base || ''});
       //.pipe(gulp.dest(dest));
      if(startFun && typeof startFun == 'function') {
          stream = startFun(stream, s);
       }
  
       //为了修改stream中的filepath为发布路径，，以用计算相对路径
      //stream = stream.pipe(gulp.dest(dest));
  
      stream = stream.pipe(parse.parse({
              "type": 'css',
              "dest": dest,
              "debug": config.debug,
              "urlMaps": config.urlMaps || [],
              "config": s,
              "destPath": path.resolve(config.root, config.dest || '')
          }));    
  
       if(s.concat && !config.debug){   
          stream = stream.pipe(gulpconcat(s.concat));
      }
       if(s.rename)
          stream = stream.pipe(rename(s.rename));
  
      //把原文件拷贝一份,以备其它地方引用//不 能去掉，否则inline可能会出问题
      //所以其它地方引用，只能引用rename/concat之后的
      stream = stream.pipe(gulp.dest(dest));
      
      //只有在非debug下才进行压缩
      if (!config.debug && config.cssMinify !== false) {
          stream = stream.pipe(cleanCSS());
      }
  
       //给文件名加扩展
      if(!config.debug && (s.md5 || s.expand)) {
          //加上md5或文件名扩展
          stream = stream.pipe(jmrename.changeFileName({"separator": config.separator, 'size': config.md5Size, 'md5': s.md5, 'expand': s.expand}));
      }
  
      if(endFun && typeof endFun == 'function') {
          stream = endFun(stream, s);
       }
  
      return stream.pipe(gulp.dest(dest))
       .pipe(cache.saveInfo(config));
  }