如何使用 require.context 获取指定文件夹下所有 SVG 文件并提取文件名
这段代码的作用是获取指定文件夹下的所有 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' 相对于当前文件来说是在上级目录,因此需要使用 '../' 来表示上级目录。
原文地址: https://www.cveoy.top/t/topic/ok72 著作权归作者所有。请勿转载和采集!