sbt-web - 源文件任务一次执行2次

时间:2015-02-16 20:02:55

标签: playframework sbt sbt-web

我正在开发一个用作源文件任务的sbt-web插件。它看起来像一个巨大的警告正常工作,它每次通过运行两次。我无法弄清楚为什么,甚至究竟如何调试正在发生的事情,所以任何方面的任何帮助都将非常感激。我所知道的是,如果我调用“激活器运行”,然后加载一个页面,我的插件被调用2次,而所有其他的,例如JSHint和Stylus,只被调用一次。

我的插件实际上比其他插件少得多,所以我怀疑有一些我丢失的小配置。有人知道什么可能导致插件被调用两次,或者有人需要做些什么来防止这种情况?以下是代码片段:

object Import {
  val webpack = TaskKey[Seq[File]]("webpack", "Run the webpack module bundler.")
}

object SbtWebpack extends AutoPlugin {

  override def requires = SbtJsTask
  override def trigger = AllRequirements

  val autoImport = Import

  import com.typesafe.sbt.jse.SbtJsEngine.autoImport.JsEngineKeys._
  import com.typesafe.sbt.jse.SbtJsTask.autoImport.JsTaskKeys._
  import com.typesafe.sbt.web.Import.WebKeys._
  import com.typesafe.sbt.web.SbtWeb.autoImport._

  override def projectSettings: Seq[Setting[_]] = Seq(
    includeFilter in webpack := "*.js" || "*.jsx",
    (nodeModuleDirectories in webpack in Plugin) += baseDirectory.value / "node_modules",
    webpack in Assets := runWebpack(Assets).dependsOn(webJarsNodeModules in Plugin).value,
    resourceGenerators in Assets <+= webpack in Assets,
    resourceManaged in webpack in Assets := webTarget.value / webpack.key.label,
    resourceDirectories in Assets += (resourceManaged in webpack in Assets).value
  )

  private def runWebpack(config: Configuration): Def.Initialize[Task[Seq[File]]] = Def.task {
    ... doing stuff ...
  }
}

提前致谢!

0 个答案:

没有答案