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

webpack拆分壓縮css并以link導(dǎo)入的操作步驟

 更新時(shí)間:2021年10月19日 11:40:27   作者:cjh_code  
我們運(yùn)行打包后會(huì)發(fā)現(xiàn)less轉(zhuǎn)為了css文件,但css文件確通過js加入style標(biāo)簽,下面我們將css進(jìn)行拆分出來,并以link標(biāo)簽引入,具體實(shí)現(xiàn)步驟一起看看吧

先看一下代碼文件結(jié)構(gòu):

入口文件(index1.js)內(nèi)容:

import $ from 'jquery'
import './css/index.css'
import './less/index.less'
$(function () {
    $('#app li:nth-child(odd)').css('color', 'red')
    $('#app li:nth-child(even)').css('color', 'green')
})
 
import './assets/fonts/iconfont.css';
const ul = document.querySelector("ul");
const theI = document.createElement("li");
theI.className='iconfont icon-qq';
ul.appendChild(theI);

webpack.config.js配置文件內(nèi)容:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    //入口文件地址
    entry: './src/index1.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        //出口文件名
        filename: 'bundle.js',
    },
    plugins: [
        new HtmlWebpackPlugin({
        template: './public/隔行變色.html'
    })],
     module: {
         rules: [{
             //匹配.css結(jié)尾的文件,i是不區(qū)別大小寫
             test: [/\.css$/i],
            //從右往左執(zhí)行,不能改變順序style-loader是 CSS 插入到 DOM 中,css- loader是對(duì) @import 和 url() 進(jìn)行處理,就像 js 解析 import /require() 一樣
             use: ["style-loader", "css-loader"],
         }, {
             test: /\.less$/i,
                 use: [
                     // compiles Less to CSS
                     'style-loader',
                     'css-loader',
                     'less-loader',
                 ],
             }, { // webpack5默認(rèn)內(nèi)部不認(rèn)識(shí)這些文件, 所以當(dāng)做靜態(tài)資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     },
};

我們進(jìn)行打包然后運(yùn)行打包后的html文件:

發(fā)現(xiàn)css樣式是通過js生成style標(biāo)簽的形式添加上去的

我們運(yùn)行打包后會(huì)發(fā)現(xiàn)less轉(zhuǎn)為了css文件,但css文件確通過js加入style標(biāo)簽,下面我們將css進(jìn)行拆分出來,并以link標(biāo)簽引入

步驟:

1、安裝mini-css-extract-plugin

npm i mini-css-extract-plugin -D    //npm安裝
yarn add mini-css-extract-plugin -D    //yarn安裝

2、在webpack.config.js文件中引入并配置

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
//引入安裝的mini-css-extract-plugin
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
    //入口文件地址
    entry: './src/index1.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        //出口文件名
        filename: 'bundle.js',
    },
    plugins: [new MiniCssExtractPlugin(),
        new HtmlWebpackPlugin({
        template: './public/隔行變色.html'
    })],
     module: {
         rules: [{
             //匹配.css結(jié)尾的文件,i是不區(qū)別大小寫
             test: [/\.css$/i],
            //從右往左執(zhí)行,不能改變順序style-loader是 CSS 插入到 DOM 中,css- loader是對(duì) @import 和 url() 進(jìn)行處理,就像 js 解析 import /require() 一樣
             use: [MiniCssExtractPlugin.loader, "css-loader"
             ],
         }, {
             test: /\.less$/i,
                 use: [
                     // compiles Less to CSS
                     MiniCssExtractPlugin.loader,
                     'css-loader',
                     'less-loader',
                 ],
             }, { // webpack5默認(rèn)內(nèi)部不認(rèn)識(shí)這些文件, 所以當(dāng)做靜態(tài)資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     },
};

注意:

  • HtmlWebpackPlugin是將css文件以link形式引入到打包后的html頁面中的。
  • use配置項(xiàng)是從右至左的。
  • 在css和less使用中即(use配置項(xiàng)中)MiniCssExtractPlugin.loader一定不要放在css-loader后面和style-loader前面,因?yàn)閏ss-loader和less-loader是對(duì)@import和url()進(jìn)行處理的,就像js解析import/require()一樣(放在它之后相當(dāng)于還沒進(jìn)行解析就拆分了會(huì)報(bào)錯(cuò))。而style-loader是把CSS插入到DOM中的(放在它之前相當(dāng)于已經(jīng)將CSS插入到DOM中了再進(jìn)行拆分會(huì)報(bào)錯(cuò))。

3、壓縮拆分出來的css文件

  • 下載optimize-css-assets-webpack-plugin
  • 引入并配置webpack.config.js文件
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
//引入安裝的mini-css-extract-plugin
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
//用來壓縮拆分的CSS
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = {
    //入口文件地址
    entry: './src/index1.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        //出口文件名
        filename: 'bundle.js',
    },
    plugins: [new MiniCssExtractPlugin(),new OptimizeCSSAssetsPlugin({}),
        new HtmlWebpackPlugin({
        template: './public/隔行變色.html'
    })],
     module: {
         rules: [{
             //匹配.css結(jié)尾的文件,i是不區(qū)別大小寫
             test: [/\.css$/i],
            //從右往左執(zhí)行,不能改變順序style-loader是 CSS 插入到 DOM 中,css- loader是對(duì) @import 和 url() 進(jìn)行處理,就像 js 解析 import /require() 一樣
             use: [MiniCssExtractPlugin.loader, "css-loader"
             ],
         }, {
             test: /\.less$/i,
                 use: [
                     // compiles Less to CSS 
                     MiniCssExtractPlugin.loader,
                     'css-loader',
                     'less-loader',
                 ],
             }, { // webpack5默認(rèn)內(nèi)部不認(rèn)識(shí)這些文件, 所以當(dāng)做靜態(tài)資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     }
};

4、進(jìn)行打包

發(fā)現(xiàn)多了一個(gè)main.css文件,打開網(wǎng)頁進(jìn)行查看:

 

main.css文件以link方式引入進(jìn)去了 并且被壓縮了

到此這篇關(guān)于webpack拆分壓縮css并以link導(dǎo)入的文章就介紹到這了,更多相關(guān)webpack拆分壓縮css內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js實(shí)現(xiàn)簡單的輪播圖效果

    js實(shí)現(xiàn)簡單的輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡單的輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 判斷控件是否已加載完成的代碼

    判斷控件是否已加載完成的代碼

    判斷一個(gè)控件是否已加載完成其實(shí)很簡單,就是利用瀏覽器的解析順序。通俗的說,代碼的位置越靠前,就越先加載。
    2010-02-02
  • JavaScript生成簡單等差數(shù)列

    JavaScript生成簡單等差數(shù)列

    本文給大家分享使用for循環(huán)實(shí)現(xiàn)js生成簡單的等差數(shù)列,具體實(shí)現(xiàn)方法,大家參考下本文
    2017-11-11
  • JavaScript模板引擎實(shí)現(xiàn)原理實(shí)例詳解

    JavaScript模板引擎實(shí)現(xiàn)原理實(shí)例詳解

    這篇文章主要介紹了JavaScript模板引擎實(shí)現(xiàn)原理,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript模板引擎原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • 動(dòng)態(tài)的改變IFrame的高度實(shí)現(xiàn)IFrame自動(dòng)伸展適應(yīng)高度

    動(dòng)態(tài)的改變IFrame的高度實(shí)現(xiàn)IFrame自動(dòng)伸展適應(yīng)高度

    動(dòng)態(tài)的改變IFrame的高度,實(shí)現(xiàn)IFrame自動(dòng)伸展,父頁面也自動(dòng)神縮原理: 在IFrame子頁面一加載的時(shí)候,調(diào)用父IFrame對(duì)象,改變其高度
    2012-12-12
  • javascript實(shí)現(xiàn)判斷鼠標(biāo)的狀態(tài)

    javascript實(shí)現(xiàn)判斷鼠標(biāo)的狀態(tài)

    這篇文章主要介紹了javascript實(shí)現(xiàn)判斷鼠標(biāo)的狀態(tài)的相關(guān)代碼,十分簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-07-07
  • webpack打包的3種hash值詳解

    webpack打包的3種hash值詳解

    這篇文章主要為大家介紹了webpack打包的3種hash值詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 一文帶你深入理解JavaScript模板引擎

    一文帶你深入理解JavaScript模板引擎

    在Web前端開發(fā)中,需要將數(shù)據(jù)動(dòng)態(tài)渲染到頁面上,隨著應(yīng)用程序的復(fù)雜度增加,數(shù)據(jù)渲染的邏輯也變得越來越復(fù)雜,這時(shí)候就需要使用模板引擎來幫助我們動(dòng)態(tài)生成HTML標(biāo)記,本文將深入介紹 JavaScript 模板引擎,幫助讀者更好地理解和應(yīng)用模板引擎
    2023-06-06
  • 微信小程序地圖標(biāo)記多個(gè)位置的方法詳解

    微信小程序地圖標(biāo)記多個(gè)位置的方法詳解

    地圖是我們平時(shí)經(jīng)常用到的組件,而且地圖是顯示在最高層的原生組件,下面這篇文章主要給大家介紹了關(guān)于微信小程序地圖標(biāo)記多個(gè)位置的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 讓DIV的滾動(dòng)條自動(dòng)滾動(dòng)到最底部的3種方法(推薦)

    讓DIV的滾動(dòng)條自動(dòng)滾動(dòng)到最底部的3種方法(推薦)

    下面小編就為大家?guī)硪黄孌IV的滾動(dòng)條自動(dòng)滾動(dòng)到最底部的3種方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09

最新評(píng)論