docs: function createPackTargetFile(options, context) {
      var ns = fis.config.get('namespace');
      var connector = fis.config.get('namespaceConnector', ':');
  
      var packFile = options.target;
      if (!packFile) {
          fis.log.error('missing the pack target info');
          return;
      }
  
      var pkgId = options.packId || ((ns ? ns + connector : '') + 'p' + (pkgCounter++));
      var pkg = context.createFile(packFile, {useHash: true,isPackBundles:!!options.isPackBundles});
      var pkgPath = pkg.subpath;
      if (context.isPackageIdExist(pkgId)) {
          return fis.log.error('duplicate package id: %s', pkgId);
      }
  
      if (context.isFileExisted(pkg)) {
          pkg = context.getFileBySubPath(pkgPath);
          // fis.log.warning('there is a namesake file of package [' + pkgPath + ']');
  
          if (pkg.isPkgFile) {
              fis.log.info('ignore the same pack target %s', pkgPath);
              return {
                  referPkg: pkg.pkgId
              };
          }
  
          if (pkg.release === false || pkg.isPartial) {
              fis.log.warn(
                  'the pack target is not released or is part of anthor files: %s',
                  pkgPath
              );
              return;
          }
  
          pkg.useExistedPack = true;
      }
  
      pkg.isPkgFile = true;
      pkg.pkgId = pkgId;
  
      return pkg;
  }