具有文件依赖性的 SBT-web 增量编译

SBT-web incremental compilation with file dependencies

我正在尝试编写一个 set-web 插件来编译 sass 文件。我坚持这样的约定,名称以“_”开头的文件不会被直接编译,但它们可以包含在其他文件中。我试图通过使用以下文件过滤器来做到这一点:

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 函数 returns 一个 OpSuccess 时,我确保任何包含的文件都包含在 readFiles 参数中。

不幸的是,当其中一个导入文件(以 _ 开头)发生更改时,包含文件不会重新编译。知道我该如何解决这个问题吗?

我正在使用 scala 2.11.7 和 sbt-web 1.2.2

事实证明,包含文件的路径格式不正确。修复此问题后,包含文件的增量编译工作正常。