Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework sbt web-每次执行2次源文件任务_Playframework_Sbt_Sbt Web - Fatal编程技术网

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

Playframework sbt web-每次执行2次源文件任务,playframework,sbt,sbt-web,Playframework,Sbt,Sbt Web,我正在开发一个sbt web插件,它可以作为源文件任务。它似乎工作得很得体,但有一个巨大的警告,每次通过都会运行两次。我不知道为什么,甚至不知道如何调试正在发生的事情,所以无论哪方面的任何帮助都将不胜感激。我所知道的是,如果我调用“activator run”,然后加载一个页面,我的插件将被调用2次,而所有其他插件(如JSHint和Stylus)只被调用一次 我的插件实际上比其他插件做的要少得多,所以我怀疑我缺少了一些小的配置。有人知道什么会导致插件被调用两次,或者有人需要做什么来防止这种情况发

我正在开发一个sbt web插件,它可以作为源文件任务。它似乎工作得很得体,但有一个巨大的警告,每次通过都会运行两次。我不知道为什么,甚至不知道如何调试正在发生的事情,所以无论哪方面的任何帮助都将不胜感激。我所知道的是,如果我调用“activator run”,然后加载一个页面,我的插件将被调用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 ...
  }
}
对象导入{
val webpack=TaskKey[Seq[File]](“webpack”,“运行webpack模块绑定器”)
}
对象sbtweback扩展自动推送{
覆盖def requires=SbtJsTask
覆盖def触发器=所有要求
val自动导入=导入
导入com.typesafe.sbt.jse.SbtJsEngine.autoImport.JsEngineKeys_
导入com.typesafe.sbt.jse.SbtJsTask.autoImport.JsTaskKeys_
导入com.typesafe.sbt.web.import.WebKeys_
导入com.typesafe.sbt.web.SbtWeb.autoImport_
覆盖def项目设置:Seq[设置[]]=Seq(
网页包中的includeFilter:=“*.js”| |“*.jsx”,
(插件中网页包中的NodeModuleDirectory)+=baseDirectory.value/“node_模块”,
资产中的网页包:=运行网页包(资产).dependsOn(插件中的webjarsnodemules).value,
资产中的resourceGenerators当我看到“两次”和Play时,我的第一个猜测是它与0.13.8有关。可能有一些分辨率与更改有关。更熟悉Play的人可以提供实际答案。