webpack如何拆分压缩css并以link导入
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家分享的是有关webpack如何拆分压缩css并以link导入的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先看一下代码文件结构:入口文件(index1.js)
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
上网课服务器崩了
数据库怎么接入主机
武汉软件开发有前景吗
西安市 软件开发
数据库 数据流图
鹤壁市科恩网络技术有限公司
高中信息技术数据库管理技术
上海质量软件开发出厂价格
奥康软件开发温州待遇
软件开发工程师常见误区
视频服务器和流媒体服务器
希达软件开发公司
网络安全宣传易拉宝
武汉 软件开发
私有云建财务软件数据库
腾讯模拟器服务器异常
数据库技术初级考试辅导书书籍
网络安全周活动简报
软件开发最新消息
网购和网络技术
海信无法连接到云端服务器
sci数据库找不到
网络安全工程女生
海康vag服务器是什么
为什么我数据库备份不了
集中化服务器管理软件有哪些
低保户有全国数据库吗
家政软件开发架构
金蝶数据库置疑
软件开发公司税负率