尝试使用此库:vite-plugin-react-svg
并没有成功的进口它像:
import { ExternalLink } from 'assets/svg/link-external.svg?component';
此问题是否有解决方法?
我之前得到的错误如下:
import { ReactComponent as ExternalLink } from 'assets/svg/link-external.svg';
//Uncaught SyntaxError:
The requested module '/src/assets/svg/link-external.svg?import'
does not provide an export named 'ReactComponent'
6条答案
按热度按时间w6mmgewl1#
安装此软件包后,我解决了此问题:
npm i vite-plugin-svgr
41zrol4v2#
您可以通过像这样导入并赋值给img来避免svgr
p4tfgftt3#
yarn add -D vite-plugin-svgr
将是最好的选择,因为它一直在维护。第一个
也可以通过在
vite.config.js
中设置此配置选项作为默认值导入。第一次
但请注意,它将覆盖Vite的默认行为,即默认导出URL。
如果您有任何类型脚本问题,还有一个声明帮助器可用于更好地进行类型推断
juud5qan4#
👉 使用
vite-plugin-svgr
1.将
SVGR
添加到项目中yarn add -D @honkhonk/vite-plugin-svgr
1.在
vite.config.js
中添加插件SVGR
以进行vite1.在
App.tsx
中,通过在svg的import指令上添加?component
,将SVG作为React组件导入:您可以在www.example.com上找到有关SVGR的更多信息https://react-svgr.com/docs/ecosystem/#articles
nxowjjhe5#
任何人如果对已接受的答案有疑问,请尝试此软件包中描述的解决方案:https://www.npmjs.com/package/vite-plugin-svgr
import { ReactComponent as Logo } from './logo.svg'
由于某种原因,我无法使用已接受的答案进行构建
ctehm74n6#
你应该使用
@svgr/rollup
而不是vite-plugin-svgr
。vite-plugin-svgr
不是一个好的选择,因为它不支持svgo
,并且它使用esbuild
来转换一些svg代码,它在es5环境中可能会有一些问题。最糟糕的是
vite-plugin-svgr
无法添加svgo
插件,参见本期:是的。第一个