从零开始webpack4.x样式loader
Posted 前端小厨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始webpack4.x样式loader相关的知识,希望对你有一定的参考价值。
样式loader
依赖:style-loader css-loader 如果有less sass下载对应依赖
module: { // 模块 rules: [ // 规则 css-loader 解析@import 这种语法 // style-loader 把css 插入到head标签中 // loader的特点 希望单一 // loader用法 字符串只用一个loader // 多个loader用 [] // loader执行顺序是 默认从右到左 从下到上 // loader还可以写成对象 可以对一个参数options { test: /.css$/, use: [ { loader: ‘style-loader‘, options: { insertAt: ‘top‘ } }, ‘css-loader‘, ] }, { // sass stylus node-sass sass-loader test: /.less$/, use: [ { loader: ‘style-loader‘, options: { insertAt: ‘top‘ } }, ‘css-loader‘, // 顺序不能变 默认从下到上执行 ‘less-loader‘ // 把less -> css ] } ] }
如果希望抽离css,自动添加浏览器前缀 -webkit-等
依赖:mini-css-extract-plugin postcss-loader autoprefixer @babel/plugin-proposal-class-properties
@babel/plugin-proposal-decorators @babel/plugin-syntax-class-properties @babel/plugin-transform-runtime
let MiniCssExtractPlugin = require(‘mini-css-extract-plugin‘); // 抽离css插件
let OptimizeCSSAssetsPlugin = require(‘optimize-css-assets-webpack-plugin‘); // 抽离css后压缩优化
let TerserJSPlugin = require(‘terser-webpack-plugin‘); // 配合压缩js
optimization: { // 优化项
minimizer: [
new TerserJSPlugin(),
new OptimizeCSSAssetsPlugin({})
],
},
plugins: [ new MiniCssExtractPlugin({ filename: ‘main.css‘ // 生成等css文件名 }) ],
module: {
rules: [
{
test: /.css$/,
use: [
MiniCssExtractPlugin.loader,
‘css-loader‘,
‘postcss-loader‘
]
}
]
}
使用postcss-loader 需要添加 postcss.config.js
module.exports = { plugins: [ require(‘autoprefixer‘) // 添加浏览器前缀
] }
然后在package.json中"devDependencies"下添加
"browserslist": [ "defaults", "not ie <= 8", "last 2 versions", "> 1%", "ios >= 7", "android >= 4.0" ]
以上是关于从零开始webpack4.x样式loader的主要内容,如果未能解决你的问题,请参考以下文章
不使用 vue-cli 与 vue 模版,使用 Vue2.x + webpack4.x 从零开始一步步搭建项目框架
webpack4.x 报错:Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoin