webpack4 系列教程(八): CSS Tree Shaking

 

  • 教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步

    >>> 本节课源码

    >>> 所有课程源码

    1. CSS 也有 Tree Shaking?

    是滴,随着 webpack 的兴起,css 也可以进行 Tree Shaking: 以去除项目代码中用不到的 CSS 样式,仅保留被使用的样式代码。

    为了方便理解 Tree Shaking 概念,并且与 JS Tree Shaking 进行横向比较,请查看:webpack4 系列教程(八): JS Tree Shaking

    2. 项目环境仿真

    因为 CSS Tree Shaking 并不像 JS Tree Shaking 那样方便理解,所以首先要先模拟一个真实的项目环境,来体现 CSS 的 Tree Shaking 的配置和效果。

    我们首先编写 /src/css/base.css样式文件,在文件中,我们编写了 3 个样式类。但在代码中,我们只会使用 .box 和 .box--big 这两个类。代码如下所示:

    /* base.css */ html {   background: red; }  .box {   height: 200px;   width: 200px;   border-radius: 3px;   background: green; }  .box--big {   height: 300px;   width: 300px;   border-radius: 5px;   background: red; }  .box-small {   height: 100px;   width: 100px;   border-radius: 2px;   background: yellow; }

    按照正常使用习惯,DOM 操作来实现样式的添加和卸载,是一贯技术手段。所以,入口文件 /src/app.js 中创建了一个 <div> 标签,并且将它的类设为 .box

    // app.js  import base from "./css/base.css";  var app = document.getElementById("app"); var div = document.createElement("div"); div.className = "box"; app.appendChild(div);

    最后,为了让环境更接近实际环境,我们在index.html的一个标签,也引用了定义好的 box-big 样式类。

    <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <meta http-equiv=
    
                        
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信