Попробуйте добавить 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));
});