创建rake任务来编译来自gem

时间:2017-01-24 09:34:29

标签: ruby-on-rails sass rake sprockets

我想创建一个rake任务,编译一些SASS文件,这些文件在宝石中引用@ import,以加快我的开发工作流程。

一些背景

我们最近在rails应用程序中添加了一个新主题,并且sass样式表确实在开发环境中陷入了assset管道(经常造成超时的延伸)

这个主题很大程度上依赖于导入和混合,尝试手动转换成我们只能*= require的文件是非常繁琐的。正如一些指南所暗示的那样。

这些文件是相对静态的,因此很少有理由在每个请求上编译它们但我有其他资产经常处理,所以我不想依赖{{1} })

所有主题都包含在rake assets:precompile所有其余内容的单个文件(theme/base.scss)中,因此我认为一个简单的解决方案就是从{{1}中取出该文件并创建一个rake任务@import,将其编译为theme.css,然后application.css需要

这样,如果我们确实需要调整主题文件,我们可以更新它并运行rake任务,然后资产管道只有一个简单的静态css文件可供使用。

首先,我尝试设置一个只调用sass

的rake文件
theme:precompile

但失败了,因为主题依赖于bootstrap-sass gem,给出了

application.css

所以看起来我的rake任务需要加载整个sprockets环境,或者弄清楚如何告诉SASS bootstrap-sass gem的位置。

这可能吗?或者有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我没有找到问我答案的答案。

最后,我的解决方法是将@imports拉入一个留在资产管道中的单独文件,并在我的问题中使用了raketask。