webpack如何拆分压缩css并以link导入
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关webpack如何拆分压缩css并以link导入的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先看一下代码文件结构:入口文件(index1.js)
千家信息网最后更新 2026年11月02日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文件:

发现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-pluginconst 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-pluginconst MiniCssExtractPlugin = require("mini-css-extract-plugin");//用来压缩拆分的CSSconst 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、进行打包
发现多了一个main.css文件,打开网页进行查看:
main.css文件以link方式引入进去了 并且被压缩了
感谢各位的阅读!关于"webpack如何拆分压缩css并以link导入"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文件
配置
入口
内容
处理
地址
大小
文件名
标签
资源
静态
顺序
出口
变色
输出
形式
更多
篇文章
会报
运行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
广东万易互联网科技有限公司惠州分公司
深圳科技互联网
云电互联网科技
互联网金融科技平台
润盈互联网科技
互联网高科技企业
左右互联网络科技
互联网 科技服务平台
老年人脱离互联网科技的作文
博兴的互联网电子科技公司
互联网科技寓意
央行互联网金融科技公司
青海科技产业互联网发展
佛山市拉法互联网科技有限公司
北京市互联网新科技
广州富喜互联网络科技
广东鹅鹅鹅互联网科技有限公司
现代科技的标志之一的互联网
山东亿川互联网科技有限责任公司
奇酷互联网络科技
艾特科技互联网
互联网金融科技平台
长亮科技 互联网金融
卓越科技互联网 招聘
互联网科技公司招聘
欧洲十大科技互联网公司
用友工业互联网科技发展
互联网金融科技名词解释
本届互联网大会上的黑科技