code: function outputAll(cb) {
      cb = u.maybe(cb);
  
      var count = u.size(self.file$);
      var result = [];
  
      if (!defaultOutput || !count) return cb(log('statics.outputAll: no output'));
  
      var done = u.after(count, function() {
        log('output %s %s static files', defaultOutput.path, result.length);
        cb(result);
      });
  
      var omit = defaultOutput.omitRoutes;
      if (omit && !u.isArray(omit)) { omit = [omit]; }
  
      // TODO: re-use similar filter in generator.output and serve-scripts.outputAll
      var filterRe = new RegExp('^(/admin/|/server/' +
                  (opts.editor ? '' : '|/pub/') +
                         (omit ? '|' + u.map(omit, u.escapeRegExp).join('|') : '') +
                                ')');
  
      u.each(self.file$, function(spo, reqPath) {
        if (filterRe.test(reqPath)) return done();
  
        var src = path.join(spo.sp.src.path, spo.file);
        var dest = path.join(defaultOutput.path, spo.sp.route, spo.file);
  
        // copy will create dirs if necessary
        fs.copy(src, dest, function(err) {
          if (err) return done(log(err));
          result.push(dest);
          done();
        });
  
      });
      return self; // chainable
    }
docs: copy static files to defaultOutput preserving reqPath routes no error propagation, just log(err)