• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

根据我从哪里导入,在 Webpack 使用不同的加载器

用户头像
it1352
帮助1

问题说明

我正在使用 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?

正确答案

#1

添加 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
系列文章
更多 icon
同类精品
更多 icon
继续加载