2016-05-15 63 views
1

假设我有一个很大的Sass/Less项目,比如Bootstrap,并且我想使用它的一个单独的元素(比如说一个文本框)。是否可以让Sass/Less编译仅仅需要的类,引用跨越多个文件的任何变量和mixin,只是为了编译1(或2,或5,或10)类?可以将Sass或Less配置为只编译某些类吗?

+0

你可以用'reference'进口例如可用的插件。虽然通常整个方法很奇怪,但要使用单个类(通常只有大约5-10个CSS属性),您会参考并依赖10k行代码项目及其所有辅助垃圾吗?嗯...所以问题是为什么你不能自己写一个单一的类代码(通常是少花几倍的时间和更容易维护的时间)? –

+0

真正我要做的是让自动化软件抓取我的代码来确定我使用的类(或者在模拟浏览器中使用测试来发现类列表),并仅为这些类编译CSS,以缩短资源加载时间并使文件变小。 –

+0

这种方式更适合于另一种工具(比如“CSS优化器/收缩器”)而不是CSS预处理器(基本上,CSS预处理器语言/工具的目的是从一种语言转换到另一种语言,而不是优化/分析/缩小/处理所产生的CSS)。 –

回答

2

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

从那里,我创造我final类为:

@import "autoload.less"; 

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

我不认为这是一个完美的解决方案,但它工作得相当好对我来说,和所产生的样式表不包含多余的花式。

1

目前在Less/Sass中没有任何功能可以容纳此功能。你正在寻找的是一个后期构建过程,以删除未使用的CSS类。最值得注意的是目前Uncss这对于大多数构建工具(咕嘟咕嘟,咕噜声等)

+1

尽管这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/13268043) –

+0

@EmreBolat这个链接只是针对推荐工具的项目回购。答案更新以增加更清晰的答案。 – JustH

+0

这个答案似乎与我所寻找的最接近。 –

相关问题