单一原则,一个loader只做一件事
多个loader,从右到左,从下到上开始解析
样式相关的loader
1、less-loader
自动将less转换为CSS
2、postcss-loader
一、什么是postcss
postCSS和sass/less不同, 它不是CSS预处理器、postCSS是一款使用插件去转换CSS的工具。
二、使用到的插件
autoprefixer: 自动添加浏览器样式前缀
require("autoprefixer")({ "overrideBrowserslist": [ "ie >= 8", // 兼容IE7以上浏览器 "Firefox >= 3.5", // 兼容火狐版本号大于3.5浏览器 "chrome >= 35", // 兼容谷歌版本号大于35浏览器, "opera >= 11.5", // 兼容欧朋版本号大于11.5浏览器 ] })
postcss-px2rem-exclude: 自动把px代为转换成rem
原插件为(postcss-px2rem 该插件支持排除文件)
require("postcss-px2rem-exclude")({ remUnit: 100, // 注意算法,这是750设计稿,html的font-size按照750比例 exclude: /node_modules/i, })
3、css-loader
css-loader
会对@import
和url()
进行处理,就像 js 解析import/require()
一样。
4、MiniCssExtractPlugin.loader
MiniCssExtractPlugin.loader mini-css-extract-plugin插件快速入门
作用:从css文件中提取css代码到单独的文件中,对css代码进行代码压缩等
配置:
{ loader: MiniCssExtractPlugin.loader, options: { // 这里可以指定一个 publicPath // 默认使用 webpackOptions.output中的publicPath // publicPath的配置,和plugins中设置的filename和chunkFilename的名字有关 // 如果打包后,background属性中的图片显示不出来,请检查publicPath的配置是否有误 publicPath: './', // publicPath: devMode ? './' : '../', // 根据不同环境指定不同的publicPath hmr: devMode, // 仅dev环境启用HMR功能 } }
style-loader 的功能就一个,在 DOM 里插入一个