[英]Gulp pipe creating files and using those files
我正在玩 gulp,我偶然發現了這個我無法理解的問題。 我有一些任務:
gulp.task('concat-js', (done) => {
gulp.src('src/app/**/*.js')
.pipe(concat('app-script.js'))
.pipe(gulp.dest('src/app/dist/'));
done();
});
gulp.task('minify-js', (done) => {
gulp.src('src/app/dist/*.js')
.pipe(minify({noSource: true, ignoreFiles: ['*-min.js']}))
.pipe(gulp.dest('src/app/dist/'));
done();
});
gulp.task('compress',
gulp.series('concat-js', 'minify-js', function(done) {
// default task code here
done();
})
);
gulp.task(
'run',
gulp.series('compress', () => {
...
}
));
我的目標是在執行 run時,將源文件連接起來,然后將該文件的縮小版本連接起來。 但是我在串行執行這些任務時遇到了某種問題。 當我第一次執行run時,應用程序沒有運行,只有app-script.js被創建。 第二次運行它會創建 app-script-min.js 文件。
據我了解minify-js不會等待concat-js完成創建文件。
我認為這可能是因為在 gulp 完成之前調用了 done() 。 嘗試改變
gulp.task('concat-js', (done) => {
gulp.src('src/app/**/*.js')
.pipe(concat('app-script.js'))
.pipe(gulp.dest('src/app/dist/'));
done();
});
至
gulp.task('concat-js', (done) => {
gulp.src('src/app/**/*.js')
.pipe(concat('app-script.js'))
.pipe(gulp.dest('src/app/dist/'))
.on('finish', function() {
done();
});
});
我還發現了這個資源,你可能會感興趣。 http://www.ericcredeur.com/gulp/javascript/2015/07/15/cascading-gulp-tasks.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.