webpack4 css tree-shaking

简介: webpack4 css tree-shaking

css  tree shaking 是一个术语,通俗点就是移除项目中我们没有用到css代码,减小css的打包体积。

需要3个插件PurifyCSS,glob-all,purifycss-webpack。

(1)PurifyCSS 将帮助我们进行 CSS Tree Shaking 操作。为了能准确指明要进行 Tree Shaking 的 CSS 文件。

(2)glob-all 的作用就是帮助 PurifyCSS 进行路径处理,定位要做 Tree Shaking 的路径文件。使用purifycss的时候要用到glob.sync方法.

安装依赖

npm i  purify-css purifycss-webpack glob-all --save-dev

css 的Tree Shaking实际上是对打包后的文件进行Tree Shaking,也就是说我们要处理的实际上是打包后的文件。假如我们打包后的文件目录如下:


image.png

打包后的dist文件目录.png


那么我们要处理的也就是dist文件夹下的文件(一定要处理里面涉及到的css的所有文件,也就是本案例里的.html, .js .css类型文件)

webpack.config.js配置如下:

const MiniCssExtractPlugin = require("mini-css-extract-plugin") 
const PurifyCSS = require("purifycss-webpack");
const glob = require("glob-all");
plugins:[
        new MiniCssExtractPlugin({
            filename: isDev ? '[name].css' : 'static/css/[name].[chunkhash:8].css',
        }),
        new PurifyCSS({
            paths: glob.sync([
                path.join(__dirname,'./dist/*.html'),
                path.join(__dirname,'./dist/static/css/*.css'),//目录太深可以用匹配符'./dist/**/*.css'
                path.join(__dirname,'./dist/static/js/*.js')//目录太深可以用匹配符'./dist/**/*.js'
            ])
        }),
    ]

注意点:

1、new PurifyCSS一定要在new MiniCssExtractPlugin后。

2、要处理的文件路径一定要对。

3、正确处理文件,一定要处理所有的涉及到css的文件。(本案例里只有.html, .js .css这3种类型会涉及到css样式,如果你的项目里有其他文件类型,请自行添加)。

关于path.join可以参考:https://www.jianshu.com/p/dd3bfaf7d0ad


相关文章
|
8天前
|
Web App开发 JSON 前端开发
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
59 0
|
8天前
|
Web App开发 前端开发 JavaScript
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)(下)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
31 0
|
8天前
|
缓存 前端开发 JavaScript
《Webpack5 核心原理与应用实践》学习笔记->处理CSS
《Webpack5 核心原理与应用实践》学习笔记->处理CSS
37 0
|
9月前
|
前端开发 JavaScript
Vue--webpack打包css、image资源
Vue--webpack打包css、image资源
|
9月前
|
JavaScript 前端开发 API
Vue+Webpack+css预处理开发单页应用
Vue+Webpack+css预处理开发单页应用
70 0
Vue+Webpack+css预处理开发单页应用
|
11月前
|
前端开发 JavaScript
Webpack的基本使用,将html和css文件打包
Webpack的基本使用,将html和css文件打包
|
前端开发 JavaScript
webpack优化篇(四十八):使用 Tree Shaking 擦除无用的 JavaScript 和 CSS
webpack优化篇(四十八):使用 Tree Shaking 擦除无用的 JavaScript 和 CSS
215 0
webpack优化篇(四十八):使用 Tree Shaking 擦除无用的 JavaScript 和 CSS
|
资源调度 前端开发 JavaScript
「使用 webpack 5 从0到1搭建React+TypeScript 项目环境」2. 集成 css、less 与 sass
「使用 webpack 5 从0到1搭建React+TypeScript 项目环境」2. 集成 css、less 与 sass
「使用 webpack 5 从0到1搭建React+TypeScript 项目环境」2. 集成 css、less 与 sass
|
编解码 前端开发
webpack进阶篇(十六):移动端 CSS px 自动转换成 rem
webpack进阶篇(十六):移动端 CSS px 自动转换成 rem
329 0
webpack进阶篇(十六):移动端 CSS px 自动转换成 rem
webpack进阶篇(十五):PostCSS 插件 autoprefixer 自动补齐 CSS3 前缀
webpack进阶篇(十五):PostCSS 插件 autoprefixer 自动补齐 CSS3 前缀
350 0
webpack进阶篇(十五):PostCSS 插件 autoprefixer 自动补齐 CSS3 前缀