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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 Javascript
页面装载js及性能分析方法介绍
Mar 21 Javascript
在页面加载完成后通过jquery给多个span赋值
May 21 Javascript
jQuery中closest()函数用法实例
Jan 07 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
jQuery获取checkboxlist的value值的方法
Sep 27 Javascript
JavaScript制作弹出层效果
Dec 02 Javascript
JS实现的自动打字效果示例
Mar 10 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
Oct 23 Javascript
解决vue数组中对象属性变化页面不渲染问题
Aug 09 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
Oct 28 Javascript
JS代码编译器Monaco使用方法
Jun 11 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
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
详解vuex的简单使用
2018/03/12 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python中实现参数类型检查的简单方法
2015/04/21 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
django 常用orm操作详解
2017/09/13 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
python里反向传播算法详解
2020/11/22 Python
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
大学团日活动新闻稿
2014/09/10 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书