使用过gulp工具的应该都知道,gulp默认是异步执行任务的,这样可以大大提高运行速度效率,但实际情况我们很多时候需要用到同步,举个场景例子,我现在需要将一个css文件不压缩,一个css文件压缩,然后我将这两个文件去合并,你不用猜疑这个想法很奇怪,存在必有意义。如果你无法接受?那好,我再举个例子,因为在某些情况下,在src开发环境删除一个文件是不会删掉dist文件夹对应的文件的,gulp采用的是覆盖形式,我希望每次压缩打包之前先清空之前的dist生产环境文件夹,然后当清空完毕再执行打包,如何实现?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | const gulp = require('gulp'); const clean = require('gulp-clean');//清空目录下资源 const runSequence = require('run-sequence'); //流程控制,控制任务执行顺序 //清空dist目录 gulp.task("clean", function () { console.log('清空dist目录下的资源') return gulp.src('dist', { read: false }) .pipe(clean({ force: true })); }) // 拷贝文件 gulp.task("copyHtml", function () { //pipe后面对应的地址就是将前面路径文件拷贝复制到哪里去 console.log('\n正在打包编译中,请稍后......................\n'); return gulp.src(["src/**", "!src/*.html", "!src/*.css", "!src/js/*", "!src/css/*"]).pipe(gulp.dest('dist')) }); gulp.task('default',function(){ //重点来了,通过runSequence咱们把要执行的任务列表包裹起来就OK,并且还自带回调函数,棒棒的 runSequence("clean", "copyHtml", "Watch",function(){ console.log('\n恭喜你,编译打包已完成,所有文件在dist文件夹!!!'); }) }); |
通过run-sequence插件我们很容易就完成我们想要结果,这个插件用法是不是超级简单呢
共 0 条评论关于"通过插件让gulp同步执行任务列表"
最新评论