code: function done(error, ret) {
      busy = false;
  
      if (!error) {
        // 是否之前 release 过去。
        var everReleased = !!watchList.length;
        var affectedToCheck = [];
  
        // 将所有相关的文件，都加入 watchList
        Object.keys(ret.modified).forEach(function(filepath) {
          var file = ret.modified[filepath];
          var filepath = file.realpath;
  
          ~watchList.indexOf(filepath) || watchList.push(filepath);
  
          if (file.cache) {
            _.forEach(file.cache.deps, function(mtime, filepath) {
              ~watchList.indexOf(filepath) || watchList.push(filepath);
            });
          }
  
          // 新加入的文件，之前并没有编译过。
          if (everReleased) {
            file.links.forEach(function(filepath) {
              filepath = fis.util(root, filepath);
              if (!~watchList.indexOf(filepath)) {
                watchList.push(filepath);
                affectedToCheck.push(filepath);
                affectedList.push(filepath);
  
                fis.log.debug('New files detected: %s', filepath);
              }
            });
          }
        });
  
        latestTotal = ret.totalBeforePack;
        process.stdout.write(util.format(' [%s]\n'.grey, fis.log.now()))
  
        if (affectedList.length) {
          affectedToCheck.length && getAffectedFiles(latestTotal, affectedToCheck, false).forEach(function(filepath) {
            ~affectedList.indexOf(filepath) || affectedList.unshift(filepath);
          });
  
          setTimeout(release, 200);
        }
      }
    }
docs: 当后续的流程全部跑完后执行。