2016-03-01 73 views
0

我正在使用gulp 3.0並使用gulp-tsc & wiredep插件,但是當我將兩個插件組合在一起時,我得不到預期的輸出結果(typescript compling process在wiredep任務之後啓動,以便wiredep不包括index.html中的編譯的Java腳本文件)。請找到下面的代碼片段,請讓我知道是否可以做任何事情來獲得預期的輸出,例如wiredep應該等待tsc編譯器完成他的工作,並在index.html中包含編譯的依賴項。依次運行gulp-tsc&wiredep插件

gulp.task('compile:typescript',() => { 
    gulp.src(config.ts) 
    .pipe(typescript()) 
    .pipe(gulp.dest(config.dest)) 
}); 

gulp.task('run', function() { 
    runseq('compile:typescript', 'wiredep'); 
}); 

gulp.task('wiredep',() => { 
    var options = config.wiredepDefaultOptions(); 
    gulp.src(config.index) 
    .pipe(wiredep(options)) 
    .pipe(gulp.dest(config.dest)) 
    .pipe($.inject(gulp.src(config.js))) 
    .pipe($.inject(gulp.src(config.css))) 
    .pipe(gulp.dest(config.dest)); 
}); 

回答

1

即使使用run-sequence你還是得從你的任務返回流的吞知道,當你的任務完成:

gulp.task('compile:typescript',() => { 
    return gulp.src(config.ts) 
//^^^^^^ don't forget this 
    .pipe(typescript()) 
    .pipe(gulp.dest(config.dest)) 
}); 

gulp.task('run', function() { 
    runseq('compile:typescript', 'wiredep'); 
}); 

gulp.task('wiredep',() => { 
    var options = config.wiredepDefaultOptions(); 
    return gulp.src(config.index) 
//^^^^^^ don't forget this 
    .pipe(wiredep(options)) 
    .pipe(gulp.dest(config.dest)) 
    .pipe($.inject(gulp.src(config.js))) 
    .pipe($.inject(gulp.src(config.css))) 
    .pipe(gulp.dest(config.dest)); 
});