最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月19日 11:40:27   作者:cjh_code  
我們運行打包后會發(fā)現(xiàn)less轉(zhuǎn)為了css文件,但css文件確通過js加入style標簽,下面我們將css進行拆分出來,并以link標簽引入,具體實現(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是對 @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結(jié)尾的文件,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結(jié)尾的文件,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方式引入進去了 并且被壓縮了

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

相關(guān)文章

  • 前端實現(xiàn)添加水印功能的四種方法

    前端實現(xiàn)添加水印功能的四種方法

    這篇文章主要介紹了前端實現(xiàn)添加水印功能的四種方法,分別是使用CSS、Canvas、SVG以及動態(tài)生成水印圖像,每種方法都有其特點和適用場景,并且每種方法都給出了實例代碼,需要的朋友可以參考下
    2025-03-03
  • 淺談webpack 自動刷新與解析

    淺談webpack 自動刷新與解析

    這篇文章主要介紹了淺談webpack 自動刷新與解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 一個JavaScript遞歸實現(xiàn)反轉(zhuǎn)數(shù)組字符串的實例

    一個JavaScript遞歸實現(xiàn)反轉(zhuǎn)數(shù)組字符串的實例

    這篇文章主要介紹了一個JavaScript遞歸實現(xiàn)反轉(zhuǎn)數(shù)組字符串的實例,很不錯,非常適合新手朋友們
    2014-10-10
  • JS簡單生成兩個數(shù)字之間隨機數(shù)的方法

    JS簡單生成兩個數(shù)字之間隨機數(shù)的方法

    這篇文章主要介紹了JS簡單生成兩個數(shù)字之間隨機數(shù)的方法,涉及javascript數(shù)值運算的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • JS優(yōu)化與惰性載入函數(shù)實例分析

    JS優(yōu)化與惰性載入函數(shù)實例分析

    這篇文章主要介紹了JS優(yōu)化與惰性載入函數(shù),結(jié)合具體實例形式分析了JS惰性載入的原理、實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下
    2017-04-04
  • 微信小程序之購物車功能

    微信小程序之購物車功能

    這篇文章主要為大家詳細介紹了微信小程序之購物車功能的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JS基于FileSaver.js插件實現(xiàn)文件保存功能示例

    JS基于FileSaver.js插件實現(xiàn)文件保存功能示例

    這篇文章主要介紹了JS基于FileSaver.js插件實現(xiàn)文件保存功能,結(jié)合實例形式演示了FileSaver.js插件的具體使用技巧,需要的朋友可以參考下
    2016-12-12
  • 基于BootStrap實現(xiàn)局部刷新分頁實例代碼

    基于BootStrap實現(xiàn)局部刷新分頁實例代碼

    這篇文章主要介紹了基于BootStrap實現(xiàn)局部刷新的分頁的相關(guān)資料,非常不錯,代碼簡單易懂,具有參考價值,需要的朋友可以參考下
    2016-08-08
  • javascript學(xué)習(xí)筆記之函數(shù)定義

    javascript學(xué)習(xí)筆記之函數(shù)定義

    本文主要給大家介紹了javascript的一些函數(shù)定義方面的基礎(chǔ)知識,包括函數(shù)聲明式、函數(shù)表達式、Function 構(gòu)造函數(shù)等,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • 微信小程序?qū)崿F(xiàn)九宮格效果

    微信小程序?qū)崿F(xiàn)九宮格效果

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)九宮格效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論

秀山| 天长市| 巧家县| 安吉县| 太保市| 鄂州市| 黎城县| 平南县| 邻水| 吴桥县| 石狮市| 调兵山市| 信宜市| 康保县| 晋城| 乐都县| 黎平县| 彩票| 时尚| 循化| 宁阳县| 黄石市| 桐乡市| 德钦县| 略阳县| 锦屏县| 枝江市| 长子县| 嘉义市| 卢氏县| 天等县| 静海县| 西华县| 红桥区| 西平县| 白河县| 杨浦区| 麟游县| 将乐县| 洛川县| 普陀区|