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中的作用域链和闭包
Jun 30 Javascript
Javascript改变CSS样式(局部和全局)
Dec 18 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
js文件包含的几种方式介绍
Sep 28 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
浅析Ajax语法
Dec 05 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
JavaScript之iterable_动力节点Java学院整理
Jun 29 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
Feb 21 Javascript
分享15个Webpack实用的插件!!!
Mar 31 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中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
理解JavaScript中的事件
2006/09/23 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
python中的闭包用法实例详解
2015/05/05 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
AURALog面试题软件测试方面
2013/10/22 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
《乡愁》教学反思
2014/02/18 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
你会写请假条吗?
2019/06/26 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
MySQL分库分表详情
2021/09/25 MySQL
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android