docs: function saveByFilesPath(readFilesPath, saveFilesPath, program, showLogs) {
    if (!readFilesPath || !saveFilesPath || !program) {
      console.error(chalk.red('参数缺漏！'));
      process.exit(1);
      return;
    }
    let { i18n, breadcrumb, all } = program;
    readFilesPath.forEach((v, k) => {
      //兼容windwos平台路径
      v = v.replace(/\\/g, '/');
      var contents = fs.readFileSync(v, {
        encoding: 'utf-8',
      });
      if (this.pageName) {
        //处理viem template 中的替换，根据this.pageName来判断
        contents = contents.replace(/\${pageName}/g, this.pageName);
        var pageNameSplit = this.pageName.split('-');
        pageNameSplit = pageNameSplit.map(v => {
          v = util.toUpperCaseByPosition(v, 0, 1);
          return v;
        });
        var pageNameCombine = pageNameSplit.join('');
        contents = contents.replace(
          /\${pageNameFirstLetter}/g,
          util.toUpperCaseByPosition(pageNameCombine, 0, 1)
        );
      }
      if (all) {
        //启用全部特性功能
        contents = this.removeTag(contents, '.*');
      } else {
        if (i18n) {
          //启用i18n功能
          contents = this.removeTag(contents, 'Locale');
        } else {
          //移除this.t(xxx)，不移除会报错
          var m = contents.match(/\.t\(["'](.*)["']\)/g);
          m &&
            m.forEach(v2 => {
              var t = v2.split('"');
              if (!t[1]) {
                t = v2.split("'");
              }
              contents = contents.replace(`this.t('${t[1]}')`, `'${t[1]}'`);
              contents = contents.replace(`this.t("${t[1]}")`, `'${t[1]}'`);
              contents = contents.replace(
                new RegExp(`{.*'${t[1]}'.*}`, 'g'),
                t[1]
              );
            });
        }
        if (breadcrumb) {
          //启用面包屑功能
          contents = this.removeTag(contents, 'BreadCrumb');
        }
      }
      //统一移除自定义tag（//≤--begin），包括tag内容
      contents = this.removeTagContents(contents, '.*');
      var filePahtSplit = v.split('/');
      var fileName = filePahtSplit[filePahtSplit.length - 1];
      var savePath = path.resolve(saveFilesPath[k]);
      fs.ensureFileSync(savePath);
      fs.writeFileSync(savePath, contents, {
        mode: 0o777,
      });
      if (showLogs) {
        console.log(chalk.green(fileName + ' is saved at:'));
        console.log(chalk.cyan(savePath));
      }
    });
  }