如何在 Webpack 中加载 SVG 图片? [英] How to load SVG images in Webpack?

查看:86
本文介绍了如何在 Webpack 中加载 SVG 图片?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 Webpack 中使用 svgo-loader 加载 SVG 文件,但出现以下错误:

I'd like to load SVG files using svgo-loader in Webpack, but I get the following error:

./~/css-loader?modules&localIdentName=[name][local][hash:base64:5]!./~/autoprefixer-loader! 中的错误./~/less-loader!./demo/src/components/App/components/Header/Header.less找不到模块:错误:无法解析/Users/mishamoroshko/react-autosuggest/demo/src/components/App/components/Header 中的模块logo.svg"@ ./~/css-loader?modules&localIdentName=[name][local][hash:base64:5]!./~/autoprefixer-loader!./~/less-loader!./demo/src/components/App/components/Header/Header.less 6:199-218

ERROR in ./~/css-loader?modules&localIdentName=[name][local][hash:base64:5]!./~/autoprefixer-loader!./~/less-loader!./demo/src/components/App/components/Header/Header.less Module not found: Error: Cannot resolve module 'logo.svg' in /Users/mishamoroshko/react-autosuggest/demo/src/components/App/components/Header @ ./~/css-loader?modules&localIdentName=[name][local][hash:base64:5]!./~/autoprefixer-loader!./~/less-loader!./demo/src/components/App/components/Header/Header.less 6:199-218

./demo/src/components/App/components/Header/Header.less 中的错误模块构建失败:ModuleNotFoundError:找不到模块:错误:无法解析/Users/mishamoroshko/react-autosuggest/demo/src/components/App/components/Header

ERROR in ./demo/src/components/App/components/Header/Header.less Module build failed: ModuleNotFoundError: Module not found: Error: Cannot resolve module 'logo.svg' in /Users/mishamoroshko/react-autosuggest/demo/src/components/App/components/Header

这是相关的代码位:

Webpack 配置

module: {
  loaders: [
    {
      test: /\.less$/,
      loader: ExtractTextPlugin.extract('style', 'css?modules&localIdentName=[name]__[local]___[hash:base64:5]!autoprefixer!less'),
      exclude: /node_modules/
    },
    {
      test: /\.svg$/,
      loader: 'url?limit=8192!svgo'
    },
    ...
  ]
}

package.json

"svgo": "^0.6.1",
"svgo-loader": "^1.1.0",
"url-loader": "^0.5.7",
...

Header.less

.logo {
  background-image: url(./logo.svg);
}

logo.svgHeader.less 位于同一目录中.

logo.svg and Header.less are located in the same directory.

我在这里遗漏了什么?

复制:

1. git clone git@github.com:moroshko/react-autosuggest.git
2. cd react-autosuggest
3. git checkout a5f1a99
4. npm install
5. npm start

推荐答案

这个 css-loader 问题 似乎相关.

This css-loader issue seems related.

作为一种解决方法,更改:

As a workaround, changing:

background-image: url(./logo.svg);

到:

background-image: url(../parent-folder/logo.svg);

解决错误.

这篇关于如何在 Webpack 中加载 SVG 图片?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆