我正在使用罗盘(指南针精灵工具,包括)sass框架cli工具(罗盘手表,指南针编译)来创建app.css文件.该项目的Sass正在使用多个@import语句在sass partials中包含数十个.
问题是app.css文件编译超过2分钟(app.css是70000行长)之后,任何sass部分导入到app.scss文件中的每个小变化都会立即编译所有这些,而我只需要换一行.
我进行了广泛的研究,发现像这样的文章http://blog.teamtreehouse.com/tale-front-end-sanity-beware-sass-import,建议使用spockets而不是@import来包含sass partials.我比大多数人更喜欢这个解决方案,但是甚至需要大的重构来测试它是否也会起作用所有全局包括mixins和变量都需要包含在项目中使用的每个sass部分中,这也是不理想的.
经过一些研究后,我发现了这个https://github.com/petebrowne/sprockets-sass工具,它应该自动将@imports转换为spockets for require语句,并保留全局导入的能力.
问题是我不知道ruby并且没有使用任何ruby相关的其他然后“gem install”声明)))
知道ruby的人可以通过逐步解释如何使罗盘编译器与sprockets-sass一起工作来帮助我吗?
PS请不要建议像libsass这样的解决方案,就像我通过排除所有指南针精灵相关的东西来测试它,libsass也需要花费大量时间来编译40000行没有精灵(我怀疑部分问题不在编译中)速度但在时间系统需要创建400000行文件后).
最佳答案 您唯一能做的就是将输出顶级文件(app.css)拆分为多个输出顶级文件,并在指南针编译结束时使用sprockets任务重新调整它们!
这样可以优化sass缓存的使用,最终的concat-task也很有效,因为它是一个简单的连接!
顺便说一句,目前,指南针被指南针作者Chris Eppstein制作的EyeGlass项目所取代.
因此,考虑使用(grunt / gulp)与libsass(一个用C/C++构建的sass编译器)和EyeGlass进行整个重构的想法,它将所有类似指南针的功能添加到sass中!
希望有帮助!