webpack的CSS加载器的使用


Posted in Javascript onSeptember 11, 2018

什么是loader

loader用于转换应用程序的资源文件,他们是运行在nodejs下的函数,使用参数来获取一个资源的来源并且返回一个新的来源(资源的位置),例如:你可以使用loader来告诉webpack去加载一个coffeeScript或者Babel文件。

loader的解析

loader的解析类似模块,一个loader模块会导出一个方法并且可被nodejs写为可兼容的JavaScript,通常情况下通过npm来管理loader,但你也可以把loader放在自己的应用里。

webpack中常用的加载器

css-loader 处理css中路径引用等问题

用于在js中加载css,解释@import和url()

options

alias: 解析别名

importLoaders(@import): 在css-loader前应用的loader的数目,默认为0

Minimize: true or false 是否开启css代码压缩,比如压缩空格不换行

modules: 是否开启css-module

module.exports = {
 ...
 module: {
  rules: [{
   test: /\.css$/,
   use: ['style-loader', {
    loader: 'css-loader',
    options: {//当css文件中又引用了其他的css的时候,需要设置importLoaders
     importLoaders: 1
    }
   }]
  }]
 }
};

style-loader 动态把样式写入css

加载的css作为style标签内容插入到html中,以<style></style>形式在html页面中插入css代码

options

insertAt: 插入位置

insertInto: 插入到指定的dom

singleton: true or false,多个样式是否只生成一个<style></style>标签

postcss-loader

postcss-loader:为了浏览器的兼容性,有时候我们必须加上-webkitm, -ms, -moz等前缀。目的就是让页面可以在每个浏览器上正常运行。postcss是一个CSS的处理平台可以帮CSS实现更多的功能。

用法:

安装postcss: npm install postcss-loader autoprefixer

配置文件

webpack.config.js:

module: {
 rules: [{
  test: /\.css$/
  loader: 'style-loader!css-loader!postcss-loader'
 }]
}

postcss.config.js

module.exports = {
 plugins: [
  require('autoprefixer')//在postcss-loader中引入autoprefixer插件
 ]
}

或者

const autoprefixer = require('autoprefixer');
module: {
 rules: [{
  test: /\.css$/,
  use: ['style-loader', 'css-loader', {
   loader: 'postcss-loader',
   options: {
    plugins() {
     return [autoprefixer];
    }
   }
  }]
 }]
}

less-style

添加对webpack的LESS支持。当遇到less文件时,先交给less-loader处理,然后交给css-loader,最后交由style-loader处理,然后执行webpack打包

module: {
 rules: [{
  test: /\.less$/,
  loader: 'style-loader!css-loader!less-loader'
 }]
}

要启用CSS的source map,你需要将sourceMap选项传递给less-loader和css-loader

CSS SourceMap信息文件,里面存储着位置信息。随着代码增多,我们会对代码进行压缩,代码压缩之后进行调bug定位会非常困难,于是引入sourceMap记录压缩前后的位置信息,当产生错误时直接定位到未压缩前的位置,方便调试。简单来说就是记录压缩的翻译文件,通过这个文件可以找到你的对应源码

module.exports = {
 ...
 module: {
  rules: [{
   test: /\.less$/,
   use: ['style-loader', 'css-loader', {
    loader: 'less-loader',
    options: {
     sourceMap: true
    }
   }]
  }]
 }
};

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

Javascript 相关文章推荐
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
对jQuery的事件绑定的一些思考(补充)
Apr 20 Javascript
javascript日期计算实例分析
Jun 29 Javascript
浅析JavaScript 箭头函数 generator Date JSON
May 23 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
使用cropper.js裁剪头像的实例代码
Sep 29 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 Javascript
微信公众号网页分享功能开发的示例代码
May 27 Javascript
js实现点击烟花特效
Oct 14 Javascript
详解vue中v-for的key唯一性
May 15 Vue.js
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
详解Eslint 配置及规则说明
Sep 10 #Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 #Javascript
You might like
Symfony2 session用法实例分析
2016/02/04 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
js实现简单计算器
2015/11/22 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
使用python Django做网页
2013/11/04 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
python多进程并发demo实例解析
2019/12/13 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
学python最电脑配置有要求么
2020/07/05 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
如何查找网页漏洞
2016/06/22 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
财产保全担保书范文
2014/04/01 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
2015年宣传工作总结
2015/04/08 职场文书
老员工辞职信范文
2015/05/12 职场文书
尼克胡哲观后感
2015/06/08 职场文书
初级职称评定工作总结
2015/08/13 职场文书
岗位聘任协议书
2015/09/21 职场文书
《火烧云》教学反思
2016/02/23 职场文书
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL