code: function scripts (watch) {
    var bundler = browserify('./app/client.js', {
      debug: true,
      cache: {}
    });
  
    if (watch) {
      bundler = watchify(bundler)
    }
  
    bundler.require('./environment.json', {
      expose: 'environment'
    });
  
    exposeJS('./app').forEach(function (file) {
      bundler.require(file.path, {
        expose: file.expose
      });
    });
  
    bundler.transform(reactify);
    bundler.transform({ global: true }, envify);
    bundler.transform({ global: true }, uglifyify);
  
    /**
     * build application
     * @param {string} file
     */
    function rebundle (file) {
      var stream = bundler.bundle();
      if (file) {
        console.log('[gulp]', chalk.cyan('[watchify] rebundled due to:'), chalk.green(file));
      }
  
      console.log('[gulp]', chalk.cyan('[watchify] assets'), chalk.red('building'));
      stream
        .on('error', handleError('Browserify'))
        .pipe(source('isomorphic.js'))
        .pipe(buffer())
        .pipe(replace('{{ISOMORPHIC_ENV}}', args.name))
        .pipe(gulpIf(args.uglify, uglify()))
        .pipe(gulp.dest('./public')).on("end", function () {
          console.log('[gulp]', chalk.cyan('[watchify] assets'), chalk.green('complete'));
        });
    };
  
    bundler.on('update', rebundle);
    return rebundle();
  }
docs: build (or rebuild) application with browserify (or watchify)
  @param {boolean} watch