当css里面含有背景图片,用webpack打包时会报如下错:

如何处理这个问题呢?

我们需要借助于 file-loader 和  url-loader 这2个包。

下面具体说一下步骤:

1.安装 file-loader 和 url-loader

cnpm install --save-dev url-loader file-loader

url-loader:
引入的图片编码,生成dataURl

file-loader:
解析url引入,根据我们的配置,将图片拷贝到相应的路径,再根据我们的配置,修改打包后文件引用路径,使之指向正确的文件。

转换规则:
1.文件大小<limit,url-loader将会把文件转为DataURL;
2.文件大小>limit,url-loader会调用file-loader进行处理,参数也会直接传给file-loader

2.在webpack.config.js中,做如下配置:

module:{
rules: [
{
test: /\.css$/,
use: [ 'style-loader', 'css-loader' ]
},
{
test: /\.(png|jsp|gif)/,
use: [{
loader: 'url-loader',
options: {
limit: 1024,
name:'[path][name].[ext]',
outputPath: 'images/',
publicPath: 'dist/'
}
}]
//或者你可以简写成如下形式:
//use: 'url-loader?limit=1024&name=[path][name].[ext]&outputPath=images/&publicPath=dist/',
}
]
},

参数说明:

limit:转化成最大编码后的字节数
name:表示输出的文件名规则,如果不添加这个参数,输出的就是默认值:文件哈希。

  • 加上[path]表示输出文件的相对路径与当前文件相对路径相同,打包后文件中引用文件的路径也会加上这个相对路径
  • 加上[name].[ext]则表示输出文件的名字和扩展名与当前相同

outputPath:输出文件路径前缀。打包到指定的输出文件夹下
publicPath:打包文件中引用文件的路径前缀

3.看一下文件目录结构

具体代码如下:

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>index</title>
</head>
<body>
<div class="model"></div>
<script src="../dist/index.bundle.js"></script>
</body>
</html>

base.js:

import css from '../css/common.css';

webpack.config.js:

const path = require('path'); //引入path
module.exports = {
mode: 'development',
entry: {
index: path.join(__dirname, 'src/js/index.js'),
signup:path.join(__dirname, 'src/js/signup.js'),
}, output: {
path:path.join(__dirname, 'dist'),
filename: '[name].bundle.js',
}, module:{
rules: [
{
test: /\.css$/,
use: [ 'style-loader', 'css-loader' ]
},
{
test: /\.(png|jpg|jpeg|jsp|gif)/,
use: [{
loader: 'url-loader',
options: {
limit: 1024,
name:'[name].[ext]',
outputPath: 'images/',
publicPath: '../dist/images/'
}
}]
}
]
},
}

4.执行 cnpm run start

我们可以看到dist里面的文件目录如下:

浏览器打开显示如下图:

完美~~

感谢阅读~~

webpack6--css 背景图片处理的更多相关文章

  1. Bootstrap css背景图片的设置

    一. 网页中添加图片的方式有两种 一种是:通过<img>标签直接插入到html中 另一种是:通过css背景属性添加 居中方法:水平居中的text-align:center 和 margin ...

  2. css背景图片拉伸 以及100% 满屏显示

    如何用css背景图片拉伸 以及100% 满屏显示呢?这个问题听起来似乎很简单.但是很遗憾的告诉大家.不是我们想的那么简单. 比如一个容器(body,div,span)中设定一个背景.这个背景的长宽值在 ...

  3. div css背景图片不显示

    我们在写页面时,为了便于维护,css样式通常都是通过link外部导入html的,有时在css中写入背景图片时,此时背景图片的路径应该是相对css文件的.比如,此时的文件有index.html,css. ...

  4. CSS背景图片定位

    原文:CSS背景图片定位 在网页开发中我们经常需要对图片进行分割(如下图)来使用,而不是分别提供单独的图片来调用,常见的如页面背景,按钮图标等,这样做的好处就是减少请求次数,节省时间和带宽. 对背景图 ...

  5. 【IE6的疯狂之八】链接伪类(:hover)CSS背景图片有闪动BUG

    IE6下链接伪类(:hover)CSS背景图片有闪动BUG,主要原因ie会再一次请求这张图片,或者说图片没被缓存. 例如: CSS代码 a:hover{background:url(imagepath ...

  6. 【转】链接伪类(:hover)CSS背景图片有闪动BUG

    来源:http://www.css88.com/archives/744 --------------------------------------------------------------- ...

  7. 兼容各浏览器的css背景图片拉伸代码

    需要用到背景图拉伸,找到了下面这段css代码: filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='***.jpg' , s ...

  8. css背景图片拉伸

    css背景图片拉伸 background-image:url(bg.png); -moz-background-size: 100% 100%; -o-background-size: 100% 10 ...

  9. css背景图片位置:background的position(转)

    css背景图片位置:background的position   position的两个参数:水平方向的位置,垂直方向的位置----------该位置是指背景图片相对于前景对象的 1.backgroun ...

  10. 利用wget 抓取 网站网页 包括css背景图片

    利用wget 抓取 网站网页 包括css背景图片 wget是一款非常优秀的http/ftp下载工具,它功能强大,而且几乎所有的unix系统上都有.不过用它来dump比较现代的网站会有一个问题:不支持c ...

随机推荐

  1. 请教Mysql如何删除 不包含 某些字符的记录

    删除包含指定字符的记录 delete from `表` where `字段` like '%指定字符1%' or like '%指定字符2%' or like '%指定字符3%' 删除不包含指定字符的 ...

  2. 6个P2P流媒体开源项目介绍

    P2P流媒体开源项目介绍  1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据 ...

  3. 绑定DDL控件方法

    刚刚写的,用在项目中,先记下来,备忘: 下面是调用方式:

  4. 深入理解Linux内核-定时测量

    定时测量:由基于固定频率振荡器和计数器的几个硬件电路完成的. 记时体系概貌: 内核中与时间相关的任务: 硬件设备: 实时时钟(RTC):1.Real Time Clock ,独立于CPU和所有芯片,每 ...

  5. Boost家族

    大师Yoav Freund在文章<A decision-theoretic generalization of on-line leanring and an application to bo ...

  6. LoadingController

    --local MainSceneConfig = require "res.scripts.configs.MainSceneConfig" -- 暂时添加一个临时配置文件 -- ...

  7. (原创)拨开迷雾见月明-剖析asio中的proactor模式(一)

    使用asio之前要先对它的设计思想有所了解,了解设计思想将有助于我们理解和应用asio.asio是基于proactor模式的,asio的proactor模式隐藏于大量的细节当中,要找到它的踪迹,往往有 ...

  8. Cisco交换机堆叠与HSRP之间的区别

    随着Internet的日益普及,人们对网络的依赖性也越来越强.这同时对网络的稳定性提出了更高的要求,人们自然想到了基于设备的备份结构,就像在服务器中为提高数据的安全性而采用双硬盘结构一样.核心交换机是 ...

  9. python3.5 连接mysql

      I did the steps below with Python 3.5.1 and it works: Download driver from here Driver installatio ...

  10. RelativeLayout.LayoutParams

    通过id设置相对兄弟元素对齐. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...