我的构建脚本有两个要求:
gulp clean build
时,clean
必须在build
之前完成
开始。 gulp build
,则clean
不应该运行。因此,如果指定了clean
,那么build
应该等待它,否则就开始。
如果我这样做,第一部分是可能的
gulp.task('clean');
gulp.task('build', ['clean']);
然而,这违反了第2点
如果我这样做
gulp.task('clean');
gulp.task('build');
违反了第1点
gulp可以实现吗?
答案 0 :(得分:13)
您不能像使用所需的依赖关系管理那样使用相同的命令运行两个gulp任务。
无论如何,你可以将一个参数传递给你的build
任务,该任务允许使用一个小三元组在运行之前等待clean
完成。
这样的事情:
gulp.task('build', (process.argv[3] === '--clean') ? ['clean'] : null, function () {
...
});
这样,您可以使用
正常启动构建gulp build
当您想使用clean
:
gulp build --clean
有很多方法可以获得更好的参数处理,例如yargs或gulp-util的env。但我发现我的方法很好,因为它不需要任何额外的依赖。
答案 1 :(得分:0)
看起来您可以使用Gulp-If
gulp.task('build', function() {
gulp.src('*.*')
.pipe(gulpif(condition, clean()))
.pipe(gulp.dest('./dist'));
});