我正在我们的 Java 应用程序中实现 Sass 支持。由于我们已经有了 wro4j(在最新版本 1.7.5 中),我决定使用它的 rubySassCss 作为预处理器。在我使用一些较新的语法之前,我已经完成了所有配置,并且整个过程都处理了 .scss 文件。
使用带有 3.2.0 版本的 Sass ( http://sass-lang.com/documentation/file.SASS_CHANGELOG.html )的 VIII 2012 中引入的功能时出现错误,即可变参数 ("$args... " 语法)和 mixin 声明中的内容块。
@mixin mix($arg...) {
font-size: 12px;
}
.class {
color: black;
}
例如,上面的简单 .scss 文件在 rubySassCss 处理时抛出:
2014-06-13 11:13:48,574 DEBUG [ro.isdc.wro.http.WroFilter] Exception occured
ro.isdc.wro.WroRuntimeException: org.jruby.embed.EvalFailedException: (SyntaxError) Invalid CSS after "@mixin mix($arg": expected ")", was "...) {"
at ro.isdc.wro.extensions.processor.support.sass.RubySassEngine.process(RubySassEngine.java:70)
at ro.isdc.wro.extensions.processor.css.RubySassCssProcessor.process(RubySassCssProcessor.java:59)
at ro.isdc.wro.model.resource.processor.decorator.ProcessorDecorator.process(ProcessorDecorator.java:89)
at ro.isdc.wro.model.resource.processor.decorator.LazyProcessorDecorator.process(LazyProcessorDecorator.java:49)
at ro.isdc.wro.model.resource.processor.decorator.ProcessorDecorator.process(ProcessorDecorator.java:89)
at ro.isdc.wro.model.resource.processor.decorator.ProcessorDecorator.process(ProcessorDecorator.java:89)
如果不是 wro4j 发行说明 ( https://code.google.com/p/wro4j/wiki/ReleaseNotes ) 明确指出他们很久以前实现了 Sass 处理器 3.2.1,那我不会那么惊讶在 IX 2012 中:
发布 1.5.0 日期:2012 年 9 月 27 日
(...)
Issue523 将 rubySassCss 处理器升级到 3.2.1
任何人都可以告诉我他们是否有同样的问题或知道是什么原因造成的?我真的很想利用这种可变参数语法。
这也是我的 pom.xml:
<dependency>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-core</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-extensions</artifactId>
<version>1.7.5</version>
</dependency>