docs: async function read(file, cache) {
  
    const stats = fs.statSync(file)
  
    if (stats.isDirectory()) {
      const files = fs.readdirSync(file)
      files.map(k => read(path.join(file, k), cache))
    // 排除掉文件中的 dotfile
    } else if (stats.isFile() && !path.basename(file).startsWith('.')) {
      if (!cache.get(file)) cache.set(file, stats)
    }
    return cache
  }