一. CSS文件基本處理需求假設(shè)項(xiàng)目中的CSS文件均采用預(yù)編譯語(yǔ)言編寫(xiě),那么在打包中需要處理的基本問(wèn)題包括:
二. 解決方案的升級(jí)
三. 基本使用方法3.1 常用插件及功能簡(jiǎn)述以
3.2 webpack的配置本篇不是 const HtmlWebpackPlugin = require('html-webpack-plugin');//用于自動(dòng)生成html入口文件的插件
const MiniCssExtractPlugin = require("mini-css-extract-plugin");//將CSS代碼提取為獨(dú)立文件的插件
const OptimizeCssAssetsPlugin = require("optimize-css-assets-webpack-plugin");//CSS模塊資源優(yōu)化插件
module.exports = {
mode:'development',
entry:'./main.js',
output:{
filename:'main.bundle.js',
path:__dirname + '/build'
},
module: {
rules: [
{
test: /\.scss$/,
exclude: /node_modules/, //排除node_modules文件夾
use: [{
loader: MiniCssExtractPlugin.loader//建議生產(chǎn)環(huán)境采用此方式解耦CSS文件與js文件
},{
loader: 'css-loader',//CSS加載器
options: {importLoaders: 2}//指定css-loader處理前最多可以經(jīng)過(guò)的loader個(gè)數(shù)
},{
loader: 'postcss-loader',//承載autoprefixer功能
},{
loader: 'sass-loader'//SCSS加載器,webpack默認(rèn)使用node-sass進(jìn)行編譯
}
]
}
]
},
plugins:[
new HtmlWebpackPlugin(),//生成入口html文件
new MiniCssExtractPlugin({
filename: "[name].css"
})//為抽取出的獨(dú)立的CSS文件設(shè)置配置參數(shù)
],
optimization:{
//對(duì)生成的CSS文件進(jìn)行代碼壓縮 mode='production'時(shí)生效
minimizer:[
new OptimizeCssAssetsPlugin()
]
}
}
module.exports = {
plugins:[
require('autoprefixer')
]
}
"browerslist": [ "last 2 versions", "IE 8", "UCAndroid" ] 編寫(xiě)一段待 //變量定義
$grey: #1e1e1d;
$yellow: #ffad15;
$offwhite: #f8f8f8;
$darkerwhite: darken($offwhite, 15);//SCSS函數(shù)
$baseFontSize:14px;
//循環(huán)
@for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
//mixin
@mixin px2rem($name, $px){
#{$name}: $px / $baseFontSize * 1rem;
}
//嵌套
.class3{
font-weight: bold;
display:flex;
&-small{
color: $offwhite;
@include px2rem('font-size',14px);
}
}
//autoprefixer
::placeholder{
width:10px;
}可以看到轉(zhuǎn)換后的結(jié)果: 提示:代碼壓縮等優(yōu)化功能在4.0版本中默認(rèn)當(dāng)mode : 'production'時(shí)有效。 四. 使用CSS-Modules項(xiàng)目地址:CSS Modules開(kāi)源地址 CSS Module在CSS中使用類(lèi)選擇器,其基本原理是將CSS代碼中的樣式名替換為哈希值,并建立一個(gè) 在webpack中使用 開(kāi)啟模塊化功能后再進(jìn)行打包,可以看到同樣的 而在打包文件中增加了如下片段: 當(dāng)然 五. 圖解Css-Process-Chain從上述配置中可以看出,使用預(yù)編譯器編寫(xiě)的樣式文件需要經(jīng)過(guò)一系列
|
|
|
來(lái)自: 丹楓無(wú)跡 > 《待分類(lèi)》