将 libsass 与指南针一起使用
Posted
技术标签:
【中文标题】将 libsass 与指南针一起使用【英文标题】:Using libsass with compass 【发布时间】:2014-11-23 04:11:46 【问题描述】:正如标题所说。编译时间超过 50 秒是不可接受的。那么,有没有办法,比方说:一个带有罗盘魔法的单个(部分)文件(如 sprite mixins 等),其余的文件是纯 sass 的?
我正在考虑转向 less(引用导入),并用额外的繁重任务代替所有指南针技巧,但我更喜欢 sass 而不是 less。
我看到thosetickets,但我希望有办法用 compass 编译单个文件,其余的与 libsass 合并(我有时使用 sass 3.3 语法,但如果我能获得更好编译时间我可以恢复到 3.2)。
有人成功完成了这样的配置吗?
【问题讨论】:
你不接受我的回答有什么原因吗? 【参考方案1】:在我们的例子中(>100.000 LoCSS),我们成功地从 grunt-contrib-compass 转移到了组合
grunt-sass
它使用 libsass 而不是 ruby 版本,为了从 compass 中获得所有魔力,我们加入了
compass-mixins
它工作得很好。您绝对应该尝试一下,我们将编译时间从 40 多秒减少到 500-600 毫秒。
更新 2
这是一个节点模块,它自动将上述库导入到您的 grunt 环境中:
https://github.com/haithembelhaj/compass-importer
更新
为 libsass 创建一个端口显然是创建者的想法:https://github.com/Compass/compass/issues/1916
【讨论】:
是的,这就是我前进的方向。虽然像精灵生成这样的东西有to be replaced with other tools 当这对我有用时绝对让我大吃一惊,除了删除指南针并在编译时间方面恢复 5 秒之外几乎没有任何变化。 为不得不在 40 秒编译中保持 100k 行的可怜的灵魂点赞。 刚刚用这个做了前端开发者的一天。删除了grunt-contrib-compass
并安装了grunt-sass
和compass-importer
。甚至不需要更改我的 scss 中的一行。【参考方案2】:
这是 sass 文件(不是 scss)的答案。请始终区分它们
-
在外壳中运行
bower install compass-sass-mixins
编辑您的 sass 文件
@import "bower_components/compass-sass-mixins/lib/compass"
或
-
在外壳中运行
npm i compass-sass-mixins
编辑您的 sass 文件
@import "node_modules/compass-sass-mixins/lib/compass"
功能列表:
https://github.com/askucher/compass-sass-mixins
【讨论】:
无论您使用哪种文件扩展名,它都适用。以上是关于将 libsass 与指南针一起使用的主要内容,如果未能解决你的问题,请参考以下文章
我试图统一创建一个 3d 指南针,但针无法与指南针的主体一起旋转
深入浅出Java并发编程指南「难点 - 核心 - 遗漏」让我们一起探索一下CompletionService的技术原理和使用指南