docs: async function mapdir(src, callback) {
      let stats = await stat(src),
          result = [];
  
      // 判断是否存在文件夹
      if (stats) {
          let fullpath = path.cwd(src),
              data = assign(stats, { path: fullpath });
  
  
          // 执行回调
          result.push(callback ? callback(data) : data);
  
          // 处理文件夹
          if (stats.isDirectory() && !fullpath.endsWith('node_modules')) {
              let files = await readdir(src);
  
              // 遍历下级文件
              for (let file of files) {
                  result = result.concat(await mapdir(path.join(src, file), callback));
              }
          }
      }
  
      // 返回结果
      return result;
  }