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操作XML 使用百度RSS作为新闻源示例
Feb 17 Javascript
JS多物体 任意值 链式 缓冲运动
Aug 10 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
JQuery基础语法小结
Feb 27 Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 Javascript
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
Vue中全局变量的定义和使用
Jun 05 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 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使用exec shell命令注入的方法讲解
2013/11/12 PHP
初识php MVC
2014/09/10 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
Python中使用SAX解析xml实例
2014/11/21 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
公司司机岗位职责范本
2014/03/03 职场文书
教室标语大全
2014/06/21 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
2015教师节通讯稿
2015/07/20 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript