code: function asset(entry, opts, cb) {
      ss.bundler.loadFile(entry, opts, null,
        function(output) {
          switch(entry.bundle) {
            case 'html':
              return cb(ss.bundler.injectTailIfNeeded(output,opts));
            case 'css':
              return cb( client.includes.css? output:'');
            case 'worker':
              //TODO
              if (opts.compress && entry.file.indexOf('.min') === -1) {
                output = ss.bundler.minifyJSFile(output, entry.file);
              }
              break;
  
            default:
              //TODO with options compress saved to avoid double compression
              output = bundler.wrapCode(output, entry, opts);
              if (opts.compress && entry.file.indexOf('.min') === -1) {
                output = ss.bundler.minifyJSFile(output, entry.file);
              }
              return cb(output);
          }
        },
        function(err) {
          ss.log.clientIssue(client,options,err,entry);
          switch(entry.ext) {
            case 'html':
              return cb('Couldn\'t format ' + entry.file + err.userInfoHTML);
            case 'css':
              return cb('/* couldn\'t format ' + entry.file + err.userInfoText+' */');
            default:
              return cb('// couldn\'t format ' + entry.file + err.userInfoText);
          }
        });
    }
docs: TODO callback(err,output) for pack to flag error