reactjs - 在 Webpack 中包含 JSX 中引用的图像资产
问题描述
是否可以让 Webpack 在构建包中包含图像资产,而无需:
- 为特定资源使用 import 语句(可以使用Webpack 5 中的Asset Modules完成)
- 不将其作为 src 属性写入静态 HTML 文档(可以使用HtmlWebpackPlugin完成)
我会有一些引用图像资源的 React JSX 代码,或者作为元素中的src
属性<img>
,或者有一些资源字符串,比如var imgUrl = './Assets/img.svg'
,以及稍后使用这个字符串作为属性的一些元素。
目前我可以手动将整个/Assets
文件夹复制到/dist
中,但我会有未使用的资源,/Assets
并希望 Webpack 找出实际使用的资源。
解决方案
哦,现在我明白了,不幸的是,这是不可能的。
React
不会检测src
图像的值,因为它会认为它只是一个string
,而不是一个路径。它不会弄清楚你在说哪个文件。以您想要的方式使用它的唯一方法是将这些图像放在public
文件夹中,您说您不想这样做。
在我个人看来,如果应用程序很小,我通常对静态图像执行的操作是将它们全部放在一个文件中,方法是导入它们并导出一个包含所有它们的对象。最后,每次我想使用任何图像时,我只需导入该文件并使用我想要的任何图像。使用这种方法,最终我会得到一个文件(包)。这只是一种方法,有很多不同的方法可以做到这一点,但它与案例有关
推荐阅读
- apache-kafka - 如何最好地将 Apache Kafka 定位为许多独立客户端的消息代理
- sql - 可以用内部联接替换相关子查询吗?
- python - 是什么导致 openCV 中的断言失败错误?
- javascript - 在 Meteor 中处理全局变量
- pandas - 您可以使用 Pandas 样式更改标题字体大小吗?
- selenium - Selenium - EventFiringWebDriver beforeFindBy 和 afterFindBy 方法多次触发相同的事件
- nsoperationqueue - NSOperationQueue 操作和操作计数已弃用。如何取消特定类的操作?
- java - 将方法(或 voids)传递给 Java ArrayList
- swift - 如何让 Swift 专门针对数组使用此功能?
- r - 根据值和分隔符拆分数据框中的所有列