当前位置: 首页 > 面试题库 >

使用webpack从目录动态导入图像

邵俊才
2023-03-14
问题内容

因此,这是我当前通过ES6导入Webpack中的图像和图标的工作流程:

import cat from './images/cat1.jpg'
import cat2 from './images/cat2.svg'
import doggy from './images/doggy.png'
import turtle from './images/turtle.png'

<img src={doggy} />

这变得很快。这就是我想要的:

import * from './images'

<img src={doggy} />
<img src={turtle} />

我觉得必须有某种方法可以动态地从特定目录中导入所有文件(不带扩展名),然后根据需要使用这些文件。

任何人都看过此事,或者对最佳解决方案有任何想法?

更新:

使用选择的答案,我能够做到这一点:

function importAll(r) {
  let images = {};
  r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); });
  return images;
}

const images = importAll(require.context('./images', false, /\.(png|jpe?g|svg)$/));

<img src={images['doggy.png']} />

问题答案:

我觉得必须有某种方法可以动态地从特定目录中导入所有文件(不带扩展名),然后根据需要使用这些文件。

ES6中没有。整点importexport是依赖关系可被确定 静态 ,即没有执行代码。

但是,由于您使用的是webpack,因此请参阅require.context。您应该能够执行以下操作:

function importAll(r) {
  return r.keys().map(r);
}

const images = importAll(require.context('./', false, /\.(png|jpe?g|svg)$/));


 类似资料:
  • 问题内容: 我有一个名为“ ClassA”的Python类,另一个应该导入“ A ClassB”的ClassA的Python类。目录结构如下: 我将如何使用,以便ClassB可以使用ClassA? 问题答案: 您确实应该使用软件包。然后将MainDir放置在文件系统中sys.path上的某个点(例如… / site- packages)上,然后可以在ClassB中说: 您只需要在每个目录中放置命名

  • 问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这

  • 问题内容: 我正在开发一个 React 应用程序并使用 Webpack 和 Typescript 。我想在标签之一中使用图片。但是,我没有找到访问图像文件的正确方法。 webpack.config.js : app.tsx : 运行应用程序时,找不到资源。 问题答案: 或者,在您的custom_typings文件夹中(如果有的话),可以添加一个新文件: 因此,您可以使用以下命令导入图像: 另外,正

  • 问题内容: 如何导入驻留在父目录中的模块(python文件)? 这两个目录中都有文件,但是我仍然无法从父目录导入文件? 在此文件夹布局中,脚本B尝试导入脚本A: 脚本B中的以下代码不起作用: 问题答案: 您无需在Python中导入脚本,而可以导入模块。一些python模块也是可以直接运行的脚本(它们在模块级别上做了一些有用的工作)。 通常,最好使用绝对进口,而不是相对进口。 在: 如果您想作为脚本

  • 我需要将所有文件从Camel监控的导入目录移动到另一个目录。为此,我在路由中使用了Camel的移动和移动失败选项。 我在属性文件中有一个MaxFilesAllowedInArchive参数,如果超过文件限制,则必须删除最旧的文件。 如何进行自定义移动和移动无法控制移动的文件数量并将最新文件保存在存档中?

  • 问题内容: 我正在尝试将所有图像导入目录中(目录位置已知)。 我已经知道找出目录长度的方法。 我不确定如何将图像(使用)导入列表或字典中,以便对其进行适当的操作。 问题答案: 我将从使用glob开始: 然后使用图像列表(image_list)做您需要做的事情。