Tive alguns problemas com watchify para criar um gulp build para react e browserify, onde o pacote seria atualizado quando um arquivo de origem é alterado. Portanto, aqui está uma maneira de organizar um arquivo de construção com o relógio.
var source = require('vinyl-source-stream'),
gulp = require('gulp'),
browserify = require('browserify'),
reactify = require('reactify'),
notify = require('gulp-notify');
var sourcesDir = './ui/jsx',
appEntryPoint = "app.js",
targetDir = './src/main/webapp';
gulp.task('default', function() {
return browserify({entries: [sourcesDir + '/' + appEntryPoint], debug: true})
.transform(reactify)
.bundle()
.pipe(source(appEntryPoint))
.pipe(gulp.dest(targetDir))
.pipe(notify("Bundling done."));
});
gulp.task('watch', function() {
gulp.watch(sourcesDir + '/' + "*.js", ['default']);
});