如果使用React,我强烈怀疑您也在使用Webpack。您可以使用require.context
而不是es6,import
并且Webpack会在构建时为您解决。
require.context ( folder, recurse, pattern )
每个示例的第一行…
const reqSvgs = require.context ( './images', true, /\.svg$/ )
…创建一个Require Context *.svg
,将images
文件夹中的所有文件路径映射到导入。这为我们提供了一个专门的Require Function,reqSvgs
并带有一些附加属性。
方法的属性之一reqSvgs
是keys
方法,它返回所有有效文件路径的列表。
const allSvgFilepaths = reqSvgs.keys ()
我们可以将这些文件路径之一传递reqSvgs
给导入的图像。
const imagePath = allSvgFilePaths[0]
const image = reqSvgs ( imagePath )
对于这个用例,此api具有约束力且不直观,因此我建议将集合转换为更常见的JavaScript数据结构,以使其更易于使用。
转换期间将导入每个图像。 注意,因为这可能是步枪。但是它提供了一种相当简单的机制,用于将多个文件复制到build文件夹,其余的源代码可能永远不会明确引用该文件。
这是3个可能有用的示例转换。