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之卸载鼠标事件的代码
May 14 Javascript
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
AngularJS中的按需加载ocLazyLoad示例
Jan 11 Javascript
Express之get,pos请求参数的获取
May 02 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
原生js添加一个或多个类名的方法分析
Jul 30 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 Javascript
使用vue实现通过变量动态拼接url
Jul 22 Javascript
Node.JS如何实现JWT原理
Sep 18 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
FCKeditor的安装(PHP)
2007/01/13 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
vue实现页面切换滑动效果
2020/06/29 Javascript
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python购物车程序简单代码
2018/04/18 Python
python实现停车管理系统
2018/11/30 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python怎么调用自己的函数
2020/07/01 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
python中append函数用法讲解
2020/12/11 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
shell程序中如何注释
2012/01/28 面试题
缴纳养老保险的证明
2014/01/10 职场文书
工作态度检讨书
2014/02/11 职场文书
超市中秋节促销方案
2014/03/21 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
修辞手法有哪些?
2019/08/29 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
如何用python清洗文件中的数据
2021/06/18 Python
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
阿里云日志过滤器配置日志服务
2022/04/09 Servers