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 相关文章推荐
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
Mar 04 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
Extjs优化(一)删除冗余代码提高运行速度
Apr 15 Javascript
JS中的prototype与面向对象的实例讲解
May 22 Javascript
jquery制作漂亮的弹出层提示消息特效
Dec 23 Javascript
JavaScript数组对象赋值用法实例
Aug 04 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
Jun 13 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
Oct 19 Javascript
Vue.js的复用组件开发流程完整记录
Nov 29 Javascript
Javascript读写cookie的实例源码
Mar 16 Javascript
用Golang运行JavaScript的实现示例
Nov 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新手上路(三)
2006/10/09 PHP
php cookis创建实现代码
2009/03/16 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python爬取个性签名的方法
2018/06/17 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
Python对切片命名的实现方法
2018/10/16 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
Python接口开发实现步骤详解
2020/04/26 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
房产公证书格式
2015/01/26 职场文书
违纪学生保证书
2015/02/27 职场文书
大学生社会实践感想
2015/08/11 职场文书
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL