webpack拆分压缩css的方法及操作是什么
Admin 2022-06-28 群英技术资讯 590 次浏览
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);
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标签引入
npm i mini-css-extract-plugin -D //npm安装 yarn add mini-css-extract-plugin -D //yarn安装
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]' } }], }, };
注意:
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]' } }], } };
发现多了一个main.css文件,打开网页进行查看:
main.css文件以link方式引入进去了 并且被压缩了
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录一、背景简介二、原型对象和对象的关系二、使用 prototype 和 proto 实现继承三、使用prototype和proto实现继承四、通过原型链访问对象的方法和属性五、其他方式实现继
这篇文章给大家分享的是jquery怎样实现图片悬浮的效果的内容,图片悬浮是一个比较常见的图片展示效果,也就是点击小图,然后悬浮展现的大图的一个效果,小编觉得挺实用的,因此分享给大家做个参考,感兴趣的朋友一起跟随小编看看吧。
本文主要介绍的是vue项目中怎么样追踪数据变化的内容,下文有具体的实现代码及方法,对大家学习和工作都有一定的参考价值,需要的朋友可以了解看看。
javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少,下面这篇文章主要给大家介绍了关于JavaScript中一些强大的运算符的相关资料,需要的朋友可以参考下
本文给大家分享用纯JavaScript+CSS怎样做页面滚动的动画的内容,让元素根据滚动位置实现动画效果比较流行,除了本文的方法也可以用第第三方插件或库来实现,废话不多说,下面直接看代码。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008