上一篇文章中,我主要分享了《Webpack如何分離樣式文件》CSS 預處理器是一個能讓你經過預處理器本身獨有的語法來生成CSS的程序,css預處理指的是在開發中咱們常常會使用一些樣式預編譯語言,在項目打包過程當中再將這些預編譯語言轉換成css。這些預編譯語言具備便捷的特性,使用這些,能夠減小代碼編寫,下降項目的開發和維護成本,提升開發效率。javascript
目前比較流行的幾種主要是Sass、LESS、Stylus、PostCSS,今天我主要分享的是Sass、LESS在webpack中的配置及使用狀況。css
Sass自己是對CSS的語法加強,它有兩種語法,如今使用更多的是SCSS(對CSS3的擴充版本)。因此你會發現,在安裝和配置loader時都是sass-loader,而實際的文件後綴是.scss。html
sass-loader就是將SCSS語法編譯爲CSS,所以在使用時一般還要搭配css-loader和style-loader。相似於咱們裝babel-loader時還要安裝babel-core,loader自己只是編譯核心庫與Webpack的鏈接器,所以這裏咱們除了sass-loader之外還要安裝node-sass,node-sass是真正用來編譯SCSS的,而sass-loader只是起到黏合的做用。 安裝命令以下:java
npm install sass-loader node-sass --save-dev
複製代碼
/** a.scss **/
$base-color: red;
html {
body{
color: $base-color;
}
}
複製代碼
import './a.scss';
document.write('hello webpack2');
複製代碼
若是沒配置wepack.config.js文件則報下面的錯誤 node
緊接着配置文件: 以下代碼webpack
const path = require('path')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = {
context: path.join(__dirname, './src'),
entry: {
index: './index.js'
},
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].js'
},
mode: 'development',
module: {
rules: [
{
test: /\.css$/i,
use: [{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: './dist'
},
}, 'css-loader','sass-loader'], // "css-loader" 將 CSS 轉化成 CommonJS 模塊
exclude: /node_modules/
},
// 配置.scss正則等
{
test: /\.scss$/i,
use: ['style-loader', 'css-loader','sass-loader'], // "css-loader" 將 CSS 轉化成 CommonJS 模塊
exclude: /node_modules/
},
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
cacheDirectory: true,
presets: [
[
'env', {
modules: false
}
]
]
}
}
}
],
},
plugins: [new MiniCssExtractPlugin({
// filename: '[name].css',
chunkFilename: '[id].css'
})],
}
複製代碼
打包以後代碼以下圖: web
若是咱們想要在瀏覽器的調試工具裏查看源碼,須要分別爲sass-loader和css-loader單獨添加source map的配置項。 把配置文件稍做修改:npm
{
test: /\.scss$/i,
use: ['style-loader',
{
loader: 'css-loader',
options: {
sourceMap: true
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
複製代碼
Less也是css預處理器,編譯語言,與Sass同樣須要安裝loader和其自己的編譯模塊,其安裝命令以下瀏覽器
npm install less-loader less --save-dev
複製代碼
Less在配置上也與Sass類似,在這裏就再也不作詳解sass
以上就是我要分享的css預處理與webpack的結合使用,主要介紹了Scss和Less兩種的安裝、配置和一些引用,運用這些能夠節約成本,提升開發性能和效率。
若是想了解更多,請掃描二維碼: