code: function zip(source, target, options, fn) {
      var zip = new Zip;
  
      // 检查是否存在filter
      if(typeof filter == 'function'){
          fn = filter;
          filter = null;
      }
      // 检查是否存在回调
      fn = fn || function(){};
  
      // 查找文件准备执行压缩
      glob(source + '/**', options, function(err, files){
          if(err) throw err;
  
          // 添加文件到待压缩数据中
          files.forEach(function(item){
              if(fs.statSync(item).isFile()){
                  zip.addFile(path.relative(source, item), item);
              }
          })
  
          // 执行压缩
          zip.saveAs(target, function(err){
              fn(err, target)
          })
      })
  }
docs: 打包Zip
  @param    {String}    source  压缩的源地址
  @param    {String}    target  压缩包地址
  @param    {Object}    filter  过滤条件，参考glob的ignore文档
  @param    {Function}  fn      回调
  @example  zip('./folder', 'folder.zip', fn)
  @date     2016-04-22 11:48