这段代码的作用是获取指定文件夹下的所有 SVG 文件,并返回这些文件的名称列表。代码中使用了 require.context 来获取 SVG 文件,其参数分别表示文件路径,是否遍历子目录,以及匹配文件的正则表达式。然后通过 map 方法将获取到的文件存储在 svgs 对象中,并返回对象的键(即文件名)组成的数组。最后通过正则表达式匹配获取文件名列表。

// // 使用 require.context 获取指定文件夹下的所有 SVG 文件
const importAll = (r: any): string[] => {
  const svgs: any = {}
  r.keys().map((key: string) => {
    return (svgs[key] = r(key))
  })

  return Object.keys(svgs)
}
const iconList: string[] = importAll(
  require.context('../icons', true, /.svg$/)
)
// 获取图标 icon-(*).svg 名称列表,例如 [shouye,xitong,zhed\ie,...]
export const getNameList = (): string[] => {
  const regex = //icon-( .*?).svg/
  return iconList.map((item: string) => item.match(regex)![1])
}

根据代码中给出的路径 'src/icons/home' 来看,路径是不正确的,正确的路径应该是 '../icons/home'。原因是 require.context 方法默认从当前文件所在的目录开始查找,而 'src/icons/home' 相对于当前文件来说是在上级目录,因此需要使用 '../' 来表示上级目录。

如何使用 require.context 获取指定文件夹下所有 SVG 文件并提取文件名

原文地址: https://www.cveoy.top/t/topic/ok72 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录