whole_func_string: function addComponentSameNameFiles(scriptFile, options) {
      const {dirname: currDir, path: relPath} = scriptFile;
      const scriptFileName = getFileName(relPath);
      // fullPath
      let filePathBase = path.join(currDir, scriptFileName);
  
      const {
          root,
          addFile,
          sourceDir,
          getFileByFullPath,
          appType,
          wx2swan,
          componentExtname,
          logger
      } = options;
  
      let compFilesInfo = getCompFilesInfoByAppType(
          filePathBase,
          {
              appType,
              wx2swan,
              componentExtname,
              compileContext: options
          }
      );
  
      let {componentType, missingMustFileExtnames, fileExtnameMap} = compFilesInfo;
      let jsonFile;
      if (!isFileInSourceDir(scriptFile.path, sourceDir)) {
          Object.keys(fileExtnameMap || {}).forEach(k => {
              let fileObj = addFile(fileExtnameMap[k]);
  
              if (fileObj.isJson) {
                  jsonFile = fileObj;
              }
          });
      }
      else {
          jsonFile = getFileByFullPath(`${filePathBase}.json`);
          if (jsonFile && !jsonFile.owner) {
              Object.keys(fileExtnameMap || {}).forEach(k => {
                  addFile(fileExtnameMap[k]);
              });
          }
      }
  
      // all must have js script except quick
      if (componentType && scriptFile) {
          scriptFile[componentType] = true;
      }
  
      if (jsonFile) {
          jsonFile.isComponentConfig = true;
          jsonFile.component = scriptFile;
          addFile(fileExtnameMap.json);
      }
  
      if (missingMustFileExtnames.length) {
          let compFile = getRelative(filePathBase, root);
          missingMustFileExtnames.forEach(ext => {
              logger.error(`missing component file: 「${compFile}.${ext}」.`);
          });
      }
  }
func_code_string: function addComponentSameNameFiles(scriptFile, options) {
      const {dirname: currDir, path: relPath} = scriptFile;
      const scriptFileName = getFileName(relPath);
      // fullPath
      let filePathBase = path.join(currDir, scriptFileName);
  
      const {
          root,
          addFile,
          sourceDir,
          getFileByFullPath,
          appType,
          wx2swan,
          componentExtname,
          logger
      } = options;
  
      let compFilesInfo = getCompFilesInfoByAppType(
          filePathBase,
          {
              appType,
              wx2swan,
              componentExtname,
              compileContext: options
          }
      );
  
      let {componentType, missingMustFileExtnames, fileExtnameMap} = compFilesInfo;
      let jsonFile;
      if (!isFileInSourceDir(scriptFile.path, sourceDir)) {
          Object.keys(fileExtnameMap || {}).forEach(k => {
              let fileObj = addFile(fileExtnameMap[k]);
  
              if (fileObj.isJson) {
                  jsonFile = fileObj;
              }
          });
      }
      else {
          jsonFile = getFileByFullPath(`${filePathBase}.json`);
          if (jsonFile && !jsonFile.owner) {
              Object.keys(fileExtnameMap || {}).forEach(k => {
                  addFile(fileExtnameMap[k]);
              });
          }
      }
  
      // all must have js script except quick
      if (componentType && scriptFile) {
          scriptFile[componentType] = true;
      }
  
      if (jsonFile) {
          jsonFile.isComponentConfig = true;
          jsonFile.component = scriptFile;
          addFile(fileExtnameMap.json);
      }
  
      if (missingMustFileExtnames.length) {
          let compFile = getRelative(filePathBase, root);
          missingMustFileExtnames.forEach(ext => {
              logger.error(`missing component file: 「${compFile}.${ext}」.`);
          });
      }
  }
func_documentation_string: Add component same name files
  
  @inner
  @param {Object} scriptFile the component script file
  @param {Object} options the process options