我正在开发一个用作源文件任务的 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 ...
}
}
提前致谢!