0
我在編寫一個編譯sass文件的set-web插件。我遵守約定,名稱以「_」開頭的文件不是直接編譯的,但它們可以包含在其他文件中。我試圖通過使用下面的文件過濾器要做到這一點:帶有文件依賴關係的SBT-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-網絡1.2.2