webpack css加载和图片加载

css加载器

在webpack中,所有的资源(js文件、css文件、模板文件,图片文件等等)都被看成是一个模块,因此多有的资源都是可以被加载的。

加载这些资源我们要在module属性定义这些加载配置(指定加载器)。
在module属性中,通过定义loaders定义加载器,其属性值是一个数组,每一个成员代表一个配置。

  • 通过test定义匹配的规则(正则表达式)
  • 通过loader定义加载器,可以通过!级联多个加载器

加载css是要两个加载器,一个是style-loader,一个是css-loader样式文件默认加载到head里面。
我们来看一个小例子
|__static
  |__css
    |__app.css
  |__app.js
|__ index.html
|__webpack.config.js

app.css

h1{
    background:red;
    width:100px;
    height:100px;
    color:blue;
}

app.js

require('./css/app.css')
document.write('<h1>hello connie</h1>')

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript" src="dest/dest.js"></script>
</body>
</html>

webpack.config.js

module.exports = {
    entry:'./static/app.js',
    output:{
        filename:'dest/dest.js'
    },
    module:{
        loaders:[
            {
                // 配置正则表达式,查找后缀为.css文件
                test:/\.css$/,
                // 配置加载器,用!符号级联
                loader:'style-loader!css-loader'
            }
        ]
    }
}

注意:test参数是正则表达式,不需要加引号,如果写成test:“/.css$/”会报错!!!

图片加载器

在webpack,图片资源也可以被看成是一个模块,因此也可以用require去加载它们。
但是加载这些图片,我们需要图片加载器,图片加载器叫url-loader
图片加载比较特殊,有两种加载方式

  • 内嵌式:将图片嵌入文件内部(图片将转换成base64格式)
  • 外链式,将图片作为一个资源嵌入(通过图片路径引入)

在webpack中,我们可以在url-loader中定义个limit参数,来决定采取哪种方式引入。

  • 语法 url-loader?limit=2048
  • ?是用来定义加载器的参数配置的
  • Limit表示图片大小限制
  • 2048单位是b,所以2048表示2Kb

这句话的意思是,当图片小于2KB的时候,我们采取内嵌式加载图片
当图片大于2kb的时候我们采取外链式。

app.css

div{
    height: 200px;
    width: 200px;
}

.test1{
    background-image: url("./images/test1.png");
}

.test2{
    background-image: url("./images/test2.jpg");
}

.test3{
    background-image: url("./images/test3.png");
}

webpack.config.js

module.exports = {
    entry: './static/app.js',
    output: {
        filename: 'dest/dest.js'
    },
    module: {
        loaders:[
            {
                // 图片加载器
                test:/\.(png|jpg|gif|jpeg)$/,
                loader:'url-loader?limit=2048'
            },
            {
                test:/\.css$/,
                loader:'style-loader!css-loader'
            }
        ]
    }
}

图片加载需要安装url-loader和file-loader

  • npm install url-loader
  • npm install file-loader

再次查看dest.js
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值