【问题标题】:Can Sass or Less be configured to compile just certain classes?是否可以将 Sass 或 Less 配置为仅编译某些类?
【发布时间】:2016-09-11 12:43:32
【问题描述】:

假设我有一个大型 Sass/Less 项目,例如 Bootstrap,并且我想使用其中的一个元素(例如,一个文本框。)是否可以让 Sass/Less 只编译所需的类那,引用跨多个文件的任何变量和混合,只是为了编译那个 1(或 2,或 5,或 10)类?

【问题讨论】:

  • 例如,您可以使用 reference 导入。虽然总的来说整个方法很奇怪,但要使用单个类(通常只有大约 5-10 个 CSS 属性),您会引用并依赖 10k 行代码项目及其所有辅助废话吗?嗯...所以问题是你为什么不能自己编写那个单一的类代码(通常它的工作量更少,维护起来也更容易)?
  • 我真正要做的是让自动化软件爬取我的代码以确定我使用哪些类(或在模拟浏览器中使用测试来发现类列表),然后为这些类编译 CSS类,以缩短资源加载时间并使文件更小。
  • 这样,它更多地取决于另一种工具(如“CSS 优化器/收缩器”)而不是 CSS 预处理器(基本上 CSS 预处理器语言/工具的目的是从一种语言到另一种语言,而不是优化/分析/缩小/以任何方式处理生成的 CSS)。

标签: css twitter-bootstrap sass less


【解决方案1】:

您可以通过添加括号来创建不会立即执行的 mixin。在my less library 中,我使用节点脚本创建了一个可以引用的 autoload.less 文件。

从那里,我创建我的最终类:

@import "autoload.less";

.myClass {
    #myLessModule > .aMixin();
}

我不认为这是一个完美的解决方案,但它对我来说效果很好,并且生成的样式表不包含多余的样式。

【讨论】:

    【解决方案2】:

    Less/Sass 中目前没有任何功能可以适应这种情况。您正在寻找的是删除未使用的 CSS 类的后期构建过程。目前最引人注目的是Uncss,它有可用于大多数构建工具(Gulp、Grunt 等)的插件

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @EmreBolat 该链接只是指向推荐工具的项目存储库。更新了答案以增加答案的清晰度。
    • 这个答案似乎最接近我所寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 2012-09-07
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    相关资源
    最近更新 更多