reactjs - 如何同时使用 webpack "file-loader"和 "@svgr/webpack"(或 svg-inline-loader)

标签 reactjs webpack webpack-file-loader

我想要同时使用两者的选项:exp->

import 'res/image.svg'
import myicon from 'res/icon.svg'

//in function
<img src='image.svg'/> //creat by webpack file-loader
<SvgIcon component={myicon}  viewBox="0 0 600 476.6"/> //creat by svgr/webpack

Webpack 配置:(不起作用,因为 image.svg)

{test: /\.(svg|png|jpg|gif)$/,
     use: {loader: "file-loader"}
 },
 {test: /\.svg$/,
      use: ['@svgr/webpack', 'url-loader'],
    },

最佳答案

从文件加载器中删除 svg 扩展名

它应该看起来像这样:

{
    test: /\.(png|jpg|gif)$/,
    use: {loader: "file-loader"}
},
{
    test: /\.svg$/,
    use: ['@svgr/webpack', 'url-loader'],
}

然后您可以通过这种方式导入组件:

import { ReactComponent as MyIcon} from 'res/icon.svg'

<SvgIcon component={MyIcon}  viewBox="0 0 600 476.6"/>

这样获取url:

import myIcon from 'res/icon.svg'

<img src={myIcon} />

关于reactjs - 如何同时使用 webpack "file-loader"和 "@svgr/webpack"(或 svg-inline-loader),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61105580/

相关文章:

javascript - webpack 2 和 css 中的背景图像

javascript - React 中的 Konva 无限网格

reactjs - 如何通过semantic-ui-react为react实现分页

node.js - 在 Docker-Compose 上运行时找不到模块

javascript - 重写 Webpack 4 入口点

typescript - ts-loader -> file-loader 不解析 require dependencies

javascript - Webpack 别名与 <img> src 和文件加载器不复制图像

javascript - 如何延迟传递 props 直到 setState() 完成?

javascript - 如何避免重复渲染 React 组件?

带有通配符的 webpack 外部