webpack如何拆分压缩css并以link导入
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章给大家分享的是有关webpack如何拆分压缩css并以link导入的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先看一下代码文件结构:入口文件(index1.js)
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
服务器 ipsec
x86服务器厂商何其多
如何学习好网络技术
ftp访问服务器
孩子网络安全致家长一封信
高科技互联网指什么
vb 创建数据库
网络安全与信息化工作组职责
学校网络安全生产知识竞赛
什么数据库可以存照片
盲和软件开发费用
网络技术服务业账务处理
一台服务器安装一台虚拟机
网络安全责任部门领导小组
公积金行业软件开发商有哪些
服务器如何设置参数
网络安全目标4个方面
网络安全教育直播观后感800字
信息系统用什么软件开发的
鲜十分成都互联网科技
去哪旅行服务器异常
魔兽世界部落服务器攻略
服务器证书查看
事业单位谁主管网络安全
湘潭棋牌软件开发
网络技术公司公众号
某软件开发项目监理规划
野火数据库
怎么利用网络技术建立客户网络
用友用oracle数据库