create-react-app SVG files imported as React components should not end up in build directory

eiee3dmh  于 2个月前  发布在  React
关注(0)|答案(7)|浏览(36)

简介

SVG文件可以作为React组件导入,并使用以下语法内联到包中:

import { ReactComponent as MySvg } from '../../assets/icons/my-svg.svg'

实际行为

尽管已经内联,原始的SVG文件仍然会被处理(由Webpack?),最终

  • build/static/media 文件夹中
  • asset-manifest.json 文件中

总的来说,这并不是关键问题——它只是意味着未使用的文件最终会出现在 build 文件夹中。然而,这是一个非常令人困惑的行为,开发者可能会认为这些文件正在被使用,甚至认为按照上述方式导入的SVGs并没有被内联。

预期行为

预期的行为是内联资源不会出现在构建文件夹中,从而使得 build 文件夹更小、更干净。

相关

kwvwclae

kwvwclae1#

这个问题已经被自动标记为过时,因为它没有任何最近的活动。如果没有发生任何进一步的活动,它将在5天后被关闭。

bn31dyow

bn31dyow3#

这个问题已经被自动标记为过时,因为它没有任何最近的活动。如果没有发生任何进一步的活动,它将在5天后被关闭。

u4vypkhs

u4vypkhs5#

这个问题已经被自动标记为过时,因为它没有任何最近的活动。如果没有发生任何进一步的活动,它将在5天后被关闭。

yks3o0rb

yks3o0rb7#

总的来说,这并不是关键问题。在使用Service Worker时才是关键问题。因为SVG文件也包含在self.__WB_MANIFEST值中,该值包含了预缓存的URL。这意味着浏览器会向预缓存发送请求,以获取所有这些根本不需要的SVG文件。

相关问题