在Susy Getting Started页面上,有一个标记为“手动启动”的部分,其中显示“如果您未使用终端和/或Rails中的指南针,则可以使用此方法”。然后它解释了如何复制Susy的Sass定义和@import“susy”,之后(声称),“你很高兴”。
我正在尝试使用Susy作为我自己的构建系统的一部分,它使用'sass'命令行命令来编译我的样式表。显然,Susy Sass mixins和includes依赖于Compass,因此我从Compass发行版中提取了Compass Sass定义,并将它们放在Susy可以访问的位置。然后我尝试用以下代码编译我的样式表:
sass -I scss / compass scss / foobar.scss $ {CSSDIR} /foobar.css
当我这样做时,Susy会发出警告“你需要提供有效的布局(列数)或有效的媒体查询最小宽度断点(长度)”。
深入研究代码,问题似乎是Susy称之为Compass提供的“紧凑”功能。实际的呼叫类似于:
紧凑(FALSE,FALSE,FALSE,...)
- 我认为 - 应评估为:
假
但'compact'不是Sass功能;它是一个Compass函数,在Ruby中作为Compass的一部分实现。如果Compass的Ruby扩展不可用,那么该调用保持不变,因此Susy mixin正在接受:
紧凑(FALSE,FALSE,FALSE,...)
这不是'假的'......所以事情变成了梨形。 (问题发生在susy / _grid.scss的第93行)。
在我看来,好像使用没有指南针的Susy实际上是不可能的。这个问题的最佳解决方案是什么?我只是使用'compass compile ...'而不是'sass'来编译我的样式表吗?或者我可以某种方式以某种方式为'sass'提供'紧凑'功能吗?
答案 0 :(得分:1)
您可以自己添加此功能,但我真的建议您使用Compass。它需要的只是一个config.rb
文件,以便Compass知道文件应该存在于各种辅助函数的位置。由于输出位置已在配置文件中定义,因此使用Compass进行编译的命令更加紧凑:compass watch
或compass compile
如果您不想使用Compass,可以自行添加该功能。首先,您需要custom
函数,该函数来自此处:https://github.com/chriseppstein/compass/blob/stable/lib/compass/sass_extensions/functions/lists.rb#L18
def compact(*args)
sep = :comma
if args.size == 1 && args.first.is_a?(Sass::Script::List)
list = args.first
args = list.value
sep = list.separator
end
Sass::Script::List.new(args.reject{|a| !a.to_bool}, sep)
end
将它放在任何有意义的红宝石文件中。
你的sass命令现在只需要添加这个标志:-r ./path/to/functions.rb