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 相关文章推荐
jQuery 相关控件的事件操作分解
Aug 03 Javascript
window.location.hash 使用说明
Nov 08 Javascript
jquery 表格排序、实时搜索表格内容(附图)
May 19 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
让图片跳跃起来  javascript图片轮播特效
Feb 16 Javascript
浅谈jQuery效果函数
Sep 16 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
微信小程序人脸识别功能代码实例
May 07 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 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 Socket配置以及实例的详细介绍
2013/06/13 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
Python下rrdtool模块的基本使用方法
2015/11/13 Python
简单实现Python爬取网络图片
2018/04/01 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
centos7之Python3.74安装教程
2019/08/15 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
PHP面试题集
2016/12/18 面试题
后勤园长自我鉴定
2013/10/17 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
外贸英文求职信范文
2015/03/19 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
尊师重教主题班会
2015/08/14 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js