coolie 之 CSS 模块依赖分析、合并、压缩、版本管理

发布于 2021-11-28 10:00:54 字数 2336 浏览 942 评论 0

用了 css 预编译工具,用了 grunt、gulp。在上线的时候,执行 grunt task 或者 gulp task,做的非常好。css 被合并、压缩(或者你使用了 YUI 等压缩工具实时监听处理?)了,并且生成了带有版本号的样式文件,并且还替换了页面上的 css 引用,因此你的 css 文件目录可能是这样的:

.
|-- _normalize.css
|-- _base.css
|-- _module.css
|-- home.css
|-- detail.css
`-- ...

home.css 和 detail.css 里写了各种 import,自我感觉不错。

页面上是这样的:

<!--开发环境-->
<link type="stylesheet" href="home.css">
<!--生产环境-->
<link type="stylesheet" href="home.abcd1234.css">

确实,你做的已经够好了。但,coolie 能做的比你还好,并且还更方便。且听作者细细说来:

CSS 模块依赖分析

现在,coolie 要你做的是,只需要在页面上引入一大串 link 即可,像这样:

<!--coolie-->
<link rel="stylesheet" href="/static/css/common/0-normalize.css"/>
<link rel="stylesheet" href="/static/css/common/1-base.css"/>
<link rel="stylesheet" href="/static/css/common/2-unit-grid.css"/>
<link rel="stylesheet" href="/static/css/common/2-unit-text.css"/>
<link rel="stylesheet" href="/static/css/common/3-font-icon.css"/>
<!--/coolie-->

可能你已经注意到了,<!--coolie--> 和 <!--/coolie--> 是一个 CSS 文件引用范围的标记,在这个范围里的 CSS 文件将会被打包成一个文件。coolie 通过分析这些标记来分析 CSS 模块的依赖情况,得到依赖情况,然后再将他们合并、压缩以及版本处理。

CSS 文件的合并

在页面上找到了这些标记,然后根据这些 CSS 文件列表,找到对应的文件,然后将他们串联起来合并。

CSS 文件的压缩

将上述串联起来的文件进行压缩。

CSS 文件的版本管理

coolie 在串联的过程中,就已经得到了文件的 MD5 列表,然后再次 MD5,就是文件的名称,达到了版本化管理的目的。

当然,css 文件被合并、压缩、版本处理了,那么页面上的标记就会被替换。

<link rel="stylesheet" href="/static/css/abc123.css">

注意:文件的根目录,以构建目录为准,建议在项目里写绝对路径。

当然,css 文件里还包括了静态资源的引用,后文再述。

总结

构建工具CSS 文件依赖分析CSS 文件合并压缩CSS 文件版本管理
百度 fis半自动手动可以
淘宝 spm无法无法无法
webpack无法无法无法
coolie全自动少量配置可以

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

彩扇题诗

暂无简介

文章
评论
839 人气
更多

推荐作者

xiaolangfanhua

文章 0 评论 0

qq_r4YSZQ

文章 0 评论 0

1PKOH46yx8j0x

文章 0 评论 0

酷到爆炸

文章 0 评论 0

梦言归人

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文