whole_func_string: function generateSFC(file, options) {
      let {subFiles} = file;
      if (!subFiles || !subFiles.length) {
          subFiles = [file];
      }
  
      let result = '';
      let componentConfig = file.isNativeComponent
          ? file.importComponents
          : getComponentConfig(subFiles);
  
      subFiles.forEach((item, idx) => {
          if (item.isScript) {
              result += wrapContent('script', item);
          }
          else if (item.isStyle) {
              result += wrapContent('style', item);
          }
          else if (item.isTpl) {
              result += wrapContent('template', item);
              result = addImportComponents(result, componentConfig);
          }
      });
  
      return {
          content: result
      };
  }
func_code_string: function generateSFC(file, options) {
      let {subFiles} = file;
      if (!subFiles || !subFiles.length) {
          subFiles = [file];
      }
  
      let result = '';
      let componentConfig = file.isNativeComponent
          ? file.importComponents
          : getComponentConfig(subFiles);
  
      subFiles.forEach((item, idx) => {
          if (item.isScript) {
              result += wrapContent('script', item);
          }
          else if (item.isStyle) {
              result += wrapContent('style', item);
          }
          else if (item.isTpl) {
              result += wrapContent('template', item);
              result = addImportComponents(result, componentConfig);
          }
      });
  
      return {
          content: result
      };
  }
func_documentation_string: Generate the single file component.
  Return the component file info structure:
  <template>...</template>
  <script>...</script>
  <style>...</style>
  
  @param {Object} file the file to process
  @param {string} file.content the component file content
  @param {Object=} options the parse options, optional
  @return {Object}