我正在与Gulp建立工作流程来处理电子邮件,而且我遇到了一些麻烦。
我的gulp文件将jade文件编译成html,然后我想在此任务输出的html文件上运行另一个任务。我已将其设置如下面的代码所示。
问题在于,即使控制台说“电子邮件建设者”也是如此。任务运行,它没有做任何事情。但是,如果我运行电子邮件建设者'在' gulp build'之后单独进行。它确实做了应有的事情。
图像显示emailBuilder最后运行,但仍然没有做到应有的效果。
如何顺利完成这项工作?
//-----------------------------------------------------
// ### REQUIREMENTS
//-------------------
var gulp = require('gulp'),
jade = require('gulp-jade'),
sass = require('gulp-sass'),
del = require('del'),
emailBuilder = require('gulp-email-builder'),
runSequence = require('gulp-run-sequence');
//-----------------------------------------------------
// ### Clean
// `gulp clean`
//-------------------
// Clean our compiled folder before we generate new content into it
gulp.task('clean', function (cb) {
del([
// here we use a globbing pattern to match everything inside the `compiled` folder, except our gitkeep file
'compiled/**/*',
], { dot: true },
cb);
});
//-----------------------------------------------------
// ### Compile SCSS
// `gulp compile-css`
//-------------------
gulp.task('compile-scss', function () {
gulp.src('./src/scss/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('./compiled/css'));
});
//-----------------------------------------------------
// ### Build Jade templates
// `gulp templates`
//-------------------
gulp.task('templates', function() {
var YOUR_LOCALS = {};
gulp.src('./src/templates/*.jade')
.pipe(jade({
pretty: true,
locals: YOUR_LOCALS
}))
.pipe(gulp.dest('./compiled/templates/'));
});
//-----------------------------------------------------
// ### Inline CSS, send tests
// `gulp compile-css`
//-------------------
gulp.task('emailBuilder', function() {
return gulp.src(['./compiled/templates/*.html'])
.pipe(emailBuilder())
.pipe(gulp.dest('./compiled/templates/'));
});
//-----------------------------------------------------
// ### Build
// `gulp build` - Clean up the builds directory and do a complete build.
//-------------------
gulp.task('build', function(callback) {
runSequence(
'clean',
'compile-scss',
'templates',
'emailBuilder',
callback);
});
答案 0 :(得分:0)
您需要在任务中添加return
语句。根据{{3}}:
确保您的依赖项任务正确使用异步运行提示:接受回调或返回承诺或事件流。
如果您没有返回承诺或事件流(或使用回调),则以下任务不会知道上一个任务何时完成。
我怀疑在你的情况下emailBuilder
任务运行得太快了。