欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

webpack4 處理SCSS的方法示例

 更新時間:2018年09月03日 09:23:52   作者:董沅鑫  
這篇文章主要介紹了webpack4處理SCSS的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這節(jié)課講解webpack4中處理scss。只需要在處理css的配置上增加編譯scss的 LOADER 即可。

1. 準(zhǔn)備工作

為了方便敘述,這次代碼目錄的樣式文件只有一個scss文件,以幫助我們了解核心 LOADER 的使用。

下圖展示了這次的目錄代碼結(jié)構(gòu): 目錄結(jié)構(gòu)

這次我們需要用到node-sass,sass-loader等 LOADER,package.json如下:

{
 "devDependencies": {
  "css-loader": "^1.0.0",
  "extract-text-webpack-plugin": "^4.0.0-beta.0",
  "node-sass": "^4.9.2",
  "sass-loader": "^7.0.3",
  "style-loader": "^0.21.0",
  "webpack": "^4.16.0"
 }
}

其中,base.scss代碼如下:

$bgColor: red !default;
*,
body {
 margin: 0;
 padding: 0;
}
html {
 background-color: $bgColor;
}

index.html代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
</head>
<body>
 <script src="./dist/app.bundle.js"></script>
</body>
</html>

2. 編譯打包scss

首先,在入口文件app.js中引入我們的 scss 樣式文件:

import "./scss/base.scss";

下面,開始編寫webpack.config.js文件:

const path = require("path");

module.exports = {
 entry: {
  app: "./src/app.js"
 },
 output: {
  publicPath: __dirname + "/dist/",
  path: path.resolve(__dirname, "dist"),
  filename: "[name].bundle.js"
 },
 module: {
  rules: [
   {
    test: /\.scss$/,
    use: [
     {
      loader: "style-loader" // 將 JS 字符串生成為 style 節(jié)點
     },
     {
      loader: "css-loader" // 將 CSS 轉(zhuǎn)化成 CommonJS 模塊
     },
     {
      loader: "sass-loader" // 將 Sass 編譯成 CSS
     }
    ]
   }
  ]
 }
};

需要注意的是,module.rules.use數(shù)組中,loader 的位置。根據(jù) webpack 規(guī)則:放在最后的 loader 首先被執(zhí)行。所以,首先應(yīng)該利用sass-loader將 scss 編譯為 css,剩下的配置和處理 css 文件相同。

3. 檢查打包結(jié)果

因為 scss 是 css 預(yù)處理語言,所以我們要檢查下打包后的結(jié)果,打開控制臺,如下圖所示:

同時,對于其他的 css 預(yù)處理語言,處理方式一樣,首先應(yīng)該編譯成 css,然后交給 css 的相關(guān) loader 進行處理。

處理sass文件

1.安裝sass和sass-loader

cnpm i node-sass sass-loader -D

創(chuàng)建一個src/sass/a.sass文件

$color:green;

#div2{
color: $color;
}
module:{ //我寫一個module
//配置一個rules(規(guī)則),rules是一個數(shù)組,里面包含一條一條的規(guī)則
rules:[
{
// test 表示測試什么文件類型
test:/\.css$/,
// 使用 'style-loader','css-loader'
use:ExtractTextPlugin.extract({
fallback:'style-loader', // 回滾
use:'css-loader',
publicPath:'../' //解決css背景圖的路徑問題
})
},
{
test:/\.less$/,
use:ExtractTextPlugin.extract({ //分離less編譯后的css文件
fallback:'style-loader',
use:['css-loader','less-loader']
})
},
{
test:/\.(sass|scss)$/,
use:['style-loader','css-loader','sass-loader']
},
{
test:/\.(png|jpg|gif)$/,
use:[{
loader:'url-loader',
options:{ // 這里的options選項參數(shù)可以定義多大的圖片轉(zhuǎn)換為base64
limit:50000, // 表示小于50kb的圖片轉(zhuǎn)為base64,大于50kb的是路徑
outputPath:'images' //定義輸出的圖片文件夾
}
}]
}
]
},

自動添加css前綴

postCss 預(yù)處理器

專門處理css平臺

1.下載

cnpm i postcss-loader autoprefixer -D

2.準(zhǔn)備建一個 postcss.config.js文件 配置postcss的

module.exports = {
plugins:[
require('autoprefixer') // 自動添加css前綴
]
}

3.配置postcss-loader,自動添加css前綴

module:{ //我寫一個module
//配置一個rules(規(guī)則),rules是一個數(shù)組,里面包含一條一條的規(guī)則
rules:[
{
// test 表示測試什么文件類型
test:/\.css$/,
// 使用 'style-loader','css-loader'
use:ExtractTextPlugin.extract({
fallback:'style-loader', // 回滾
use:[
{loader:'css-loader'},
{loader:'postcss-loader'} //利用postcss-loader自動添加css前綴
],
publicPath:'../' //解決css背景圖的路徑問題
})
},
{
test:/\.less$/,
use:ExtractTextPlugin.extract({ //分離less編譯后的css文件
fallback:'style-loader',
use:['css-loader','less-loader']
})
},
{
test:/\.(sass|scss)$/,
use:['style-loader','css-loader','sass-loader']
},
{
test:/\.(png|jpg|gif)$/,
use:[{
loader:'url-loader',
options:{ // 這里的options選項參數(shù)可以定義多大的圖片轉(zhuǎn)換為base64
limit:50000, // 表示小于50kb的圖片轉(zhuǎn)為base64,大于50kb的是路徑
outputPath:'images' //定義輸出的圖片文件夾
}
}]
}
]
},

自動消除冗余的css代碼

使用Purifycss

1.下載

cnpm i purifycss-webpack purify-css -D

2.引入插件

const PurifyCssWebpack = require('purifycss-webpack');

3.需要引入一個額外模塊,glob掃描路徑

cnpm i glob -D

4.引入glob

const glob = require('glob');

5.在plugins里面配置

plugins:[
// Uglify是壓縮js,現(xiàn)在已經(jīng)不需要了,只需要在script里面寫成
// "build": "webpack --mode production", 就自動壓縮額
//new Uglify(), 
new Webpack.HotModuleReplacementPlugin(),
new HtmlWebpackPlugin({
title:'Hello World',
template: './src/index.html' //模板地址
}),
new ExtractTextPlugin('css/index.css'), //都提到dist目錄下的css目錄中,文件名是index.css里面
new PurifyCssWebpack({ //消除冗余代碼
// 首先保證找路徑不是異步的,所以這里用同步的方法
// path.join()也是path里面的方法,主要用來合并路徑的
// 'src/*.html' 表示掃描每個html的css
paths:glob.sync(path.join(__dirname,'src/*.html')) 
})
]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Bootstrap表單使用方法詳解

    Bootstrap表單使用方法詳解

    這篇文章主要為大家詳細介紹了Bootstrap表單使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • javascript實現(xiàn)仿IE頂部的可關(guān)閉警告條

    javascript實現(xiàn)仿IE頂部的可關(guān)閉警告條

    仿windows IE頂部的敬告工具條,帶關(guān)閉按鈕,設(shè)計還算精美,你完全可以用到自己的網(wǎng)頁用于顯示提示等方面,有需要的小伙伴可以參考下。
    2015-05-05
  • JavaScript中最容易混淆的作用域、提升、閉包知識詳解(推薦)

    JavaScript中最容易混淆的作用域、提升、閉包知識詳解(推薦)

    在web前端開發(fā)中js中的作用域,提升,閉包知識是經(jīng)常用到的也是很容易混淆的知識點,接下來小編整理了本教程幫助大家學(xué)習(xí)
    2016-09-09
  • JavaScript分頁組件使用方法詳解

    JavaScript分頁組件使用方法詳解

    這篇文章主要為大家詳細介紹了JavaScript分頁組件使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • JavaScript面向?qū)ο笾薪涌趯崿F(xiàn)方法詳解

    JavaScript面向?qū)ο笾薪涌趯崿F(xiàn)方法詳解

    這篇文章主要介紹了JavaScript面向?qū)ο笾薪涌趯崿F(xiàn)方法,結(jié)合實例形式分析了javascript面向?qū)ο蠼涌诘母拍?、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-07-07
  • 利用JavaScript制作一個搞怪的兔子動畫效果

    利用JavaScript制作一個搞怪的兔子動畫效果

    又是一年新春之際,祝福大家兔年快樂!給大家介紹一個有趣的動效(兼容?IE),頁面右下角有一只搞怪的兔子,鼠標(biāo)在頁面中懸停時,兔子會跟著做出不同的動作和表情,感興趣的小伙伴可以了解一下
    2023-01-01
  • 使用uniapp打包微信小程序時主包和vendor.js過大解決(uniCloud的插件分包)

    使用uniapp打包微信小程序時主包和vendor.js過大解決(uniCloud的插件分包)

    每個使用分包小程序必定含有一個主包,所謂的主包,即放置默認啟動頁面/TabBar頁面,以及一些所有分包都需用到公共資源/JS 腳本,下面這篇文章主要給大家介紹了關(guān)于使用uniapp打包微信小程序時主包和vendor.js過大解決的相關(guān)資料,,需要的朋友可以參考下
    2023-02-02
  • Javascript中replace方法與正則表達式的結(jié)合使用教程

    Javascript中replace方法與正則表達式的結(jié)合使用教程

    replace方法是javascript涉及到正則表達式中較為復(fù)雜的一個方法,嚴格上說應(yīng)該是string對象的方法,下面這篇文章主要給大家介紹了關(guān)于Javascript中replace方法與正則表達式的結(jié)合使用的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • js顯示文本框提示文字的方法

    js顯示文本框提示文字的方法

    這篇文章主要介紹了js顯示文本框提示文字的方法,涉及javascript鼠標(biāo)事件及樣式操作的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • window.print()打印html網(wǎng)頁的兩種方法實現(xiàn)

    window.print()打印html網(wǎng)頁的兩種方法實現(xiàn)

    本文主要介紹了window.print()打印html網(wǎng)頁的兩種方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論