gulp任务能合并成一个吗?

如下代码,一个move任务,被写成了movejs,movecss,moveviews三个task,一个clean任务,被写成了cleanjs,cleancss,cleanviews三个任务,能否有一种简便的写法,只用一个mvoe task和一个clean task?(能否从匹配文件的正则入手,node-glob的写法上,总是感觉js目录,css目录,和*.ejs文件等用一句话清除掉?)

gulp.task('build:movejs', function() {
    return gulp.src('./build/js/*.js').pipe(gulp.dest('build/public/js'));
});

gulp.task('build:movecss', function() {
    return gulp.src('./build/css/*.css').pipe(gulp.dest('build/public/css'));
});

gulp.task('build:moveviews',function(){
    return gulp.src('./build/*.ejs').pipe(gulp.dest('build/views'));
});

gulp.task('build:cleanjs',function(){
    return gulp.src('./build/js').pipe(clean());
});

gulp.task('build:cleancss',function(){
    return gulp.src('./build/css').pipe(clean());
});

gulp.task('build:cleanviews',function(){
    return gulp.src('./build/*.ejs').pipe(clean());
});
阅读 4k
3 个回答

gulp#4.0可以用seriesparallel分别做同步和异步的任务流,其实我个人觉得任务可以保持一定的颗粒度,然后在实际运用中用一个task去封装起来。
比如这里

gulp.task('move', gulp.parallel('build:movejs', 'build:movecss', 'build:moveviews'))

补充:
如果想要只是简单的合并目录,其实gulp.src是支持数组形式的传参的。

gulp.task('build:movecss', function() {
    gulp.src('./build/js/*.js').pipe(gulp.dest('build/public/js'));
    gulp.src('./build/css/*.css').pipe(gulp.dest('build/public/css'));
    gulp.src('./build/*.ejs').pipe(gulp.dest('build/views'));
});

用监听感觉好一点吧

 gulp.task('build', function() {
    gulp.src('./build/js/*.js').pipe(gulp.dest('build/public/js'));
    gulp.src('./build/css/*.css').pipe(gulp.dest('build/public/css'));
    gulp.src('./build/*.ejs').pipe(gulp.dest('build/views'));
});
gulp.task('watch', function() {
    gulp.watch(['./build/js/*.js','./build/css/*.css','./build/*.ejs'], ['build']);   
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题