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 短路法代码精简
Aug 20 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
javascript伸缩型菜单实现代码
Nov 16 Javascript
JavaScript的Number对象的toString()方法
Dec 18 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
js实现动态创建的元素绑定事件
Jul 19 Javascript
利用jQuery实现打字机字幕效果实例代码
Sep 02 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
微信小程序 swiper 组件遇到的问题及解决方法
May 26 Javascript
elementUI 动态生成几行几列的方法示例
Jul 11 Javascript
JavaScript多种图形实现代码实例
Jun 28 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下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
python动态性强类型用法实例
2015/05/09 Python
python3爬取数据至mysql的方法
2018/06/26 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
opencv实现简单人脸识别
2021/02/19 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
家长给孩子的评语
2014/01/30 职场文书
家具促销活动方案
2014/02/16 职场文书
节约用水演讲稿
2014/05/21 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
yolov5返回坐标的方法实例
2022/03/17 Python