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 相关文章推荐
var与Javascript变量隐式声明
Sep 17 Javascript
JS获取当前网址、主机地址项目根路径
Nov 19 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
javascript 获取函数形参个数
Jul 31 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
js格式化时间的方法
Dec 18 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 28 Javascript
jQuery实现获取动态添加的标签对象示例
Jun 28 jQuery
服务端预渲染之Nuxt(使用篇)
Apr 08 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
详解Eslint 配置及规则说明
Sep 10 #Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 #Javascript
You might like
PHP 替换模板变量实现步骤
2009/08/24 PHP
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
python迭代器实例简析
2014/09/25 Python
python实现一次创建多级目录的方法
2015/05/15 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
python框架django基础指南
2016/09/08 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python构建基础的爬虫教学
2018/12/23 Python
python适合人工智能的理由和优势
2019/06/28 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
python中p-value的实现方式
2019/12/16 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
大学生求职自荐信
2013/12/12 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
企业新年寄语
2014/04/04 职场文书
奶茶店创业计划书
2014/08/14 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
2014年信访工作总结
2014/11/17 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
2019广播稿怎么写
2019/04/17 职场文书
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript