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

webpack拆分壓縮css并以link導入的操作步驟

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

先看一下代碼文件結構:

入口文件(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結尾的文件,i是不區(qū)別大小寫
             test: [/\.css$/i],
            //從右往左執(zhí)行,不能改變順序style-loader是 CSS 插入到 DOM 中,css- loader是對 @import 和 url() 進行處理,就像 js 解析 import /require() 一樣
             use: ["style-loader", "css-loader"],
         }, {
             test: /\.less$/i,
                 use: [
                     // compiles Less to CSS
                     'style-loader',
                     'css-loader',
                     'less-loader',
                 ],
             }, { // webpack5默認內(nèi)部不認識這些文件, 所以當做靜態(tài)資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     },
};

我們進行打包然后運行打包后的html文件:

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

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

步驟:

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結尾的文件,i是不區(qū)別大小寫
             test: [/\.css$/i],
            //從右往左執(zhí)行,不能改變順序style-loader是 CSS 插入到 DOM 中,css- loader是對 @import 和 url() 進行處理,就像 js 解析 import /require() 一樣
             use: [MiniCssExtractPlugin.loader, "css-loader"
             ],
         }, {
             test: /\.less$/i,
                 use: [
                     // compiles Less to CSS
                     MiniCssExtractPlugin.loader,
                     'css-loader',
                     'less-loader',
                 ],
             }, { // webpack5默認內(nèi)部不認識這些文件, 所以當做靜態(tài)資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     },
};

注意:

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

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結尾的文件,i是不區(qū)別大小寫
             test: [/\.css$/i],
            //從右往左執(zhí)行,不能改變順序style-loader是 CSS 插入到 DOM 中,css- loader是對 @import 和 url() 進行處理,就像 js 解析 import /require() 一樣
             use: [MiniCssExtractPlugin.loader, "css-loader"
             ],
         }, {
             test: /\.less$/i,
                 use: [
                     // compiles Less to CSS 
                     MiniCssExtractPlugin.loader,
                     'css-loader',
                     'less-loader',
                 ],
             }, { // webpack5默認內(nèi)部不認識這些文件, 所以當做靜態(tài)資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     }
};

4、進行打包

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

 

main.css文件以link方式引入進去了 并且被壓縮了

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

相關文章

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

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

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

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

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

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

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

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

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

    動態(tài)的改變IFrame的高度實現(xiàn)IFrame自動伸展適應高度

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

    javascript實現(xiàn)判斷鼠標的狀態(tài)

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

    webpack打包的3種hash值詳解

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

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

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

    微信小程序地圖標記多個位置的方法詳解

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

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

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

最新評論