1

我正在尝试在我的 Maven 项目中实现一个 LessCssProcessor。但是,我尝试使用处理器的项目包含带有 CSS 错误的文件,导致无法生成 css 文件。是否可以配置处理器或项目,使 Less 处理器或任何处理器只能在某组文件上运行。感谢所有帮助!

4

1 回答 1

3

仅在有限的资源集上应用处理器的最简单方法是使用 ExtensionsAwareProcessorDecorator,例如:

ExtensionsAwareProcessorDecorator.decorate(new LessCssProcessor()).addExtension("less");

应该使用修饰的处理器而不是 LessCssProcessor,它只会处理扩展名较少的资源(例如:style.less),并且会忽略其他任何内容。

使用配置约定可以实现相同的目的,例如:

preProcessors=lessCss.less

请注意,处理器的别名具有“.less”后缀,这意味着它将仅应用于具有较少扩展名的资源。

如果您需要更精细的东西,还有另一个可用的装饰器,称为 PathPatternProcessorDecorator。使用示例:

String[] patterns = new String[] {"/a/**/n?me.css", "*.less", "/less/*.css"}
PathPatternProcessorDecorator.include(new LessCssProcessor(), patterns);

上面的示例创建了一个装饰处理器,该处理器仅在资源与提供的模式之一匹配时应用。如果您需要排除模式,可以使用类似的方法:

String[] patterns = new String[] {"*.css", "/script/*.js"}
PathPatternProcessorDecorator.exclude(new LessCssProcessor(), patterns);

在这种情况下,如果资源匹配任何提供的模式,则不会应用处理器。

如果现有的实现都不够好,您可以实现自己的处理器装饰器,以自定义方式应用或不应用处理。

于 2013-06-14T07:27:09.593 回答