webpack css加载和图片加载的方法示例


Posted in Javascript onSeptember 11, 2018

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

webpack css加载和图片加载的方法示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
node.js中的buffer.toString方法使用说明
Dec 14 Javascript
jQuery实现简单二级下拉菜单
Apr 12 Javascript
javascript实现输出指定行数正方形图案的方法
Aug 03 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
使用gulp构建前端自动化的方法示例
Dec 25 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
vue1.0和vue2.0的watch监听事件写法详解
Sep 11 #Javascript
webpack的CSS加载器的使用
Sep 11 #Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 #Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 #Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
Sep 11 #Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 #Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
Sep 10 #Javascript
You might like
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python程序运行原理图文解析
2018/02/10 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
keras输出预测值和真实值方式
2020/06/27 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
解决python运行效率不高的问题
2020/07/20 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
Python用SSH连接到网络设备
2021/02/18 Python
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
职工运动会邀请函
2014/02/02 职场文书
模范家庭事迹材料
2014/02/10 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
求职自荐信怎么写
2014/03/06 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
体育教师求职信
2014/06/30 职场文书
求职简历自我评价2015
2015/03/10 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电