根据我从哪里导入,在 Webpack 使用不同的加载器
问题说明
我正在使用 svg
加载器在我的 React 文件中导入 SVG 图标.
I'm using the svg
loader to import SVG icons in my React file.
webpack.config.js
:
{ test: /\.svg(\?.*)?$/, loader: 'svg' }
component.js
:
import Icon from './icon.svg'
render () {
return <svg {...Icon.attributes} dangerouslySetInnerHTML={{ __html: Icon.content }} />
}
到目前为止我没有任何问题.我还想在我的 CSS 中使用 SVG 图像.如果我这样做:
So far I have no issues. I also want to use SVG images in my CSS. If I do this:
.class {
background-image: url('./icon.svg');
}
我的最终结果如下:
我想为我的 CSS 文件使用 url
加载器.我试过这个:
I would like to use the url
loader for my CSS file. I tried this:
.class {
url('url!./icon.svg?name=[path][name].[ext]&limit=1&mimetype=image/svg xml');
}
在我的 CSS 中,我得到:
In my CSS I get:
这看起来像我想要的,但没有显示图像,如果我在单独的选项卡中打开网址,我会得到这个:
This looks like what I want but the image is not displayed and if I open the url in a separate tab I get this:
这让我认为 svg 加载器仍在运行.
Which leads me to think that the svg loader is still running.
有没有办法根据我导入的文件指定不同的加载程序?
Is there a way to specify a different loader based on from which file I'm importing?
正确答案
添加 issuer 见:webpack.js.org/configuration/module/#rule-issuer
Add issuer see: webpack.js.org/configuration/module/#rule-issuer
示例:
{
test: /\.svg(\?.*)?$/,
issuer: /\.js$/,
loader: 'svg-inline-loader',
},
{
test: /\.svg/,
issuer: /\.scss$/,
use: {
loader: 'svg-url-loader',
options: {},
},
},
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /reply/detail/tanhcfjgkh
-
YouTube API 不能在 iOS (iPhone/iPad) 工作,但在桌面浏览器工作正常?
it1352 07-30 -
保持在后台运行的 iPhone 应用程序完全可操作
it1352 07-25 -
iPhone,一张图像叠加到另一张图像上以创建要保存的新图像?(水印)
it1352 07-17 -
使用 iPhone 进行移动设备管理
it1352 07-23 -
在android同时打开手电筒和前置摄像头
it1352 09-28 -
扫描 NFC 标签时是否可以启动应用程序?
it1352 08-02 -
检查邮件是否发送成功
it1352 07-25 -
Android微调工具-删除当前选择
it1352 06-20 -
希伯来语的空格句子标记化错误
it1352 06-22 -
Android App 和三星 Galaxy S4 不兼容
it1352 07-20