我正在尝试编写一个编译sass文件的set-web插件。我坚持认为名称以“_”开头的文件不能直接编译,但它们可以包含在其他文件中。我尝试使用以下文件过滤器执行此操作:
excludeFilter in sassify := HiddenFileFilter || "_*"
然后将修改后的源文件编译为:
val results = incremental.syncIncremental((streams in Assets).value.cacheDirectory / "run", sources) {
modifiedSources: Seq[File] =>
if (modifiedSources)
streams.value.log.info(s"Sass compiling on ${modifiedSources} source(s)")
val compilationResults: Map[File, (OpResult, Seq[Problem])] = modifiedSources
.map(inputFile =>
inputFile -> doCompile(inputFile)
).toMap
if (compilationResults.nonEmpty)
streams.value.log.info(s"Sass compilation done. Compiled ${compilationResults.size} file(s).")
(compilationResults.mapValues(_._1), compilationProblems.values.flatMap(_._2))
}
请注意,当doCompile函数返回OpSuccess时,我确保readFiles参数中包含任何包含的文件。
不幸的是,当其中一个导入的文件(以_开头)发生更改时,不会重新编译包含文件。知道如何解决这个问题吗?
我正在使用scala 2.11.7和sbt-web 1.2.2
答案 0 :(得分:0)
原来,包含文件的路径格式不正确。修复此问题后,包含文件的增量编译工作得非常完美。