Попробуйте добавить return в каждом задании.
gulp.task('project:js', function() {
    return gulp.src(path.src.js)
        .pipe(uglify())
        .pipe(concat('project.js'))
        .pipe(gulp.dest(path.build.js));
});
gulp.task('vendor:js', function() {
    var vendor = bower_files('**/*.js');
    vendor.push(path.src.semantic_js);
    return gulp.src(vendor)
        .pipe(uglify())
        .pipe(concat('vendor.js'))
        .pipe(gulp.dest(path.build.js));
});
gulp.task('build:js', ['vendor:js', 'project:js'], function(){
   return gulp.src(['static/build/js/vendor.js', 'static/build/js/project.js'])
        .pipe(concat('main.js'))
        .pipe(gulp.dest(path.build.js));
});