docs: function packPageAsynModule(file, context, options) {
      if (_.isFunction(options)) {
          options = options(file.id);
      }
      if (!options) {
          return;
      }
  
      var asyncs = (file.asyncs || []);
      if (_.isFunction(options.filterAsyncModule)) {
          asyncs = asyncs.filter(options.filterAsyncModule);
      }
      asyncs = asyncs.map(function (id) {
          var module = context.getFileById(id);
          if (!module) {
              fis.log.warn(
                  '%s entry async module %s is not found!',
                  file.subpath, module.subpath
              );
          }
          return module;
      }).filter(function (item) {
          return !!item;
      });
  
      if (asyncs.length) {
          // 对于异步模块多个，会作为整体一起合并
          var target = options.target;
          var defaultPkgFile = asyncs[0].subpath;
          if (_.isFunction(target)) {
              target = target(defaultPkgFile, file);
          }
  
          var preLoad = options.load;
          return createPackItem({
              //如果是合并的异步模块，为true
              mergeAsynModule:true,
              target: target || defaultPkgFile,
              files: options.files,
              loadOrder: options.loadOrder,
              host: file,
              rawCombines: asyncs,
              load: preLoad === undefined ? true : preLoad,
              packDeps: true,
              packId: options.packId
          }, context);
      }
  }