阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Gulp task 任务重构

      任务重构

      当一个组合操作执行时,这个组合中的每一个任务每次被调用时都会被执行。

      例如,在两个不同的任务(task)之间调用的 clean 任务(task)将被执行两次,并且将导致不可预期的结果。

      因此,最好重构组合中的 clean 任务(task)。

      如果你有如下代码:

      // This is INCORRECT
      const { series, parallel } = require('gulp');
      const clean = function(cb) {
        // body omitted
        console.log('clean');
        cb();
      };
      const css = series(clean, function(cb) {
        // body omitted
        console.log('css');
        cb();
      });
      const javascript = series(clean, function(cb) {
        // body omitted
        console.log('javascript');
        cb();
      });
      exports.default = parallel(css, javascript);
      

      重构为:

      const { series, parallel } = require('gulp');
      function clean (cb) {
          // body omitted
          console.log('clean');
          cb();
      }
      function css (cb) {
          // body omitted
          console.log('css');
          cb();
      }
      function javascript (cb) {
          // body omitted
          console.log('javascript');
          cb();
      }
      exports.default = series(clean, parallel(css, javascript));
      

      https://a.axihe.com/npm/gulp/WX20200614-180634.png

      任务可以嵌套任意深度

      series()parallel() 可以被嵌套到任意深度。

      const { series, parallel } = require('gulp');
      
      function clean(cb) {
        // body omitted
        cb();
      }
      
      function cssTranspile(cb) {
        // body omitted
        cb();
      }
      
      function cssMinify(cb) {
        // body omitted
        cb();
      }
      
      function jsTranspile(cb) {
        // body omitted
        cb();
      }
      
      function jsBundle(cb) {
        // body omitted
        cb();
      }
      
      function jsMinify(cb) {
        // body omitted
        cb();
      }
      
      function publish(cb) {
        // body omitted
        cb();
      }
      
      exports.default = series(
        clean,
        parallel(
          cssTranspile,
          series(jsTranspile, jsBundle)
        ),
        parallel(cssMinify, jsMinify),
        publish
      );
      
      
      卖前端学习教程

      只需几十元,就能买到培训班的内部教程!开启高薪之路!

      零基础小白阿里P7的教程都有!

      同时长期收购所有培训班的前端教程

      目录
      目录