docs: function normalize( id, baseId ) {
          if ( !id ) {
              return '';
          }
  
          baseId = baseId || '';
          var idInfo = parseId( id );
          if ( !idInfo ) {
              return id;
          }
  
          var resourceId = idInfo.resource;
          var moduleId = relative2absolute( idInfo.module, baseId );
  
          each(
              packagesIndex,
              function ( packageConf ) {
                  var name = packageConf.name;
                  if ( name === moduleId ) {
                      moduleId = name + '/' + packageConf.main;
                      return false;
                  }
              }
          );
  
          // 根据config中的map配置进行module id mapping
          indexRetrieve(
              baseId,
              mappingIdIndex,
              function ( value ) {
  
                  indexRetrieve(
                      moduleId,
                      value,
                      function ( mdValue, mdKey ) {
                          moduleId = moduleId.replace( mdKey, mdValue );
                      }
                  );
  
              }
          );
  
          if ( resourceId ) {
              var module = modGetModuleExports( moduleId );
              resourceId = module.normalize
                  ? module.normalize(
                      resourceId,
                      function ( resId ) {
                          return normalize( resId, baseId );
                      }
                    )
                  : normalize( resourceId, baseId );
  
              moduleId += '!' + resourceId;
          }
  
          return moduleId;
      }