在按需加载的基础上,如何提取 CSS 样式并且打包为一个 CSS 文件

2021-05-26 12:21:45 +08:00
 guugg

目前是想做一个 php 的主题。

我想用前端工具、Tailwind CSS 、Element-ui 等等设计好我的 html 。

比如我在 html 里用了 Element 布局,用了 Tailwind 的按钮的组件。然后生成的一个 css 文件仅仅包含 Element 布局、Tailwind 按钮。

请问大佬这种想法可以实现吗?

补充(我用 nuxtjs 测试了一下,只能生成随机 css 文件)

或者有什么工具更方便的吗?

2052 次点击
所在节点    Node.js
7 条回复
Mutoo
2021-05-26 13:35:50 +08:00
PurgeCSS 可以针对指定网页仅保留使用到的样式。

实际上如果你使用 tailwindcss 的自定义配置,是可以配合 PurgeCSS 使用的。
3dwelcome
2021-05-26 13:46:34 +08:00
我自己写了一个预处理工具,Tailwind CSS 本质不就是一堆缩写和 CSS 语法糖嘛,也不是很难。

我个人不适合用 PurgeCSS 之类的自动裁切工具,因为一些 TailwindCSS 样式,是 JS 动态添加到 class 上的。原先静态 dom 里没有,PurgeCSS 就没办法正确提取所需要的所有样式,只能自己写了。

Mutoo
2021-05-26 14:06:36 +08:00
@3dwelcome purgecss 是可以处理 js 里面的 class 的,另外也可以自己写 extractor
https://purgecss.com/extractors.html#default-extractor
3dwelcome
2021-05-26 14:13:59 +08:00
@Mutoo 我说的 js 里的 class,不单是“bg-red-500”字符串,而是拼接后的字符串。

比如 var styleval = "bg"+"-" + color + "-" + value;

如果这都能猜到,那工具就神了。
Mutoo
2021-05-26 15:07:14 +08:00
@3dwelcome 那你大可直接把 bg-*-* 加到白名单里呀,何必猜呢。
guugg
2021-05-26 15:30:31 +08:00
@Mutoo
@3dwelcome
谢谢,现在看来我还是要放弃它了。 用 Webpack 也不能实现我所需要的。 太难了 QAQ
KouShuiYu
2021-05-27 15:32:52 +08:00
https://www.npmjs.com/package/sass
不喜欢 sass 语法当个 css 用也行,可以打包成一个文件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/779296

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX