91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webpack如何拆分壓縮css并以link導入

發布時間:2022-03-06 17:49:26 來源:億速云 閱讀:420 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關webpack如何拆分壓縮css并以link導入的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

先看一下代碼文件結構:

webpack如何拆分壓縮css并以link導入

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

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配置文件內容:

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是不區別大小寫
             test: [/\.css$/i],
            //從右往左執行,不能改變順序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默認內部不認識這些文件, 所以當做靜態資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     },
};

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

webpack如何拆分壓縮css并以link導入

發現css樣式是通過js生成style標簽的形式添加上去的

我們運行打包后會發現less轉為了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是不區別大小寫
             test: [/\.css$/i],
            //從右往左執行,不能改變順序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默認內部不認識這些文件, 所以當做靜態資源直接輸出即可
                 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中的(放在它之前相當于已經將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是不區別大小寫
             test: [/\.css$/i],
            //從右往左執行,不能改變順序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默認內部不認識這些文件, 所以當做靜態資源直接輸出即可
                 test: /\.(eot|svg|ttf|woff|woff2)$/,
                 type: 'asset/resource',
                 generator: {
                     filename: 'font/[name].[hash:6][ext]'
                 }
             }],
     }
};

4、進行打包

webpack如何拆分壓縮css并以link導入

發現多了一個main.css文件,打開網頁進行查看:

webpack如何拆分壓縮css并以link導入 

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

感謝各位的閱讀!關于“webpack如何拆分壓縮css并以link導入”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

内江市| 辽中县| 永德县| 乌拉特后旗| 迭部县| 宁远县| 怀仁县| 民权县| 盐城市| 武汉市| 嘉峪关市| 巴林左旗| 启东市| 宜阳县| 汶川县| 岫岩| 交口县| 宝应县| 高邮市| 浙江省| 吴江市| 镇赉县| 新野县| 香河县| 霍城县| 石棉县| 西昌市| 松溪县| 葵青区| 广安市| 德清县| 莎车县| 佛山市| 调兵山市| 乐都县| 霍林郭勒市| 邯郸市| 梅州市| 肃南| 突泉县| 夏津县|