gpt4 book ai didi

playframework - Play Framework 2.3.4 : How to Run JSHint as a Part of the Compile Task

转载 作者:行者123 更新时间:2023-12-02 03:32:44 26 4
gpt4 key购买 nike

我有一个多项目应用程序,我想让 JSHint 作为编译任务的一部分运行。以下是我配置项目的方式:

1) 添加 JSHint 插件到 myApp/project/plugins.sbt:

...

addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")

2) 在 myApp/build.sbt 中启用它 (SbtWeb):

...

lazy val apidocs = project.in(file("modules/apidocs")).enablePlugins(play.PlayScala, SbtWeb).settings(
javaOptions in Test += "-Dconfig.resource=apidocs-application.conf"
).dependsOn(
common % "test->test;compile->compile"
)

我也试过运行 assets 任务...但是 JSHint 似乎没有被调用。如何让 JSHint 作为编译任务的一部分运行?也许更好的选择是修改 myApp/projects/Build.scala 并让 JSHint 压缩任何子项目中的任何 *.js

最佳答案

首先,我假设您使用的是 this version of sbt-jshint (似乎至少有 3 个流行版本在流传)。

总的来说,我们需要有一个由编译触发的任务。这很容易适应 this answer .所以我们将以下内容添加到 build.sbt:

val triggeredTask = taskKey[Seq[sbt.File]]("Triggered by compile")

triggeredTask <<= Def.task {
JshintKeys.jshint.value
}.triggeredBy(compile in Compile)

这里需要注意的是,taskKey 类型不是我链接到的答案那样的单位,而是 jshint 任务的类型。这里要注意的第二件事是引用 jshint 的奇怪之处。 JshintKeys.jshint 与仅调用 jshint。在我这样做之前,我一直收到“错误:未找到:值 jshint”。如果您查看 source您会看到 JshintKeys 是一个对象内部的对象。我不知道这是否是编写 sbt 插件的标准,但我知道这是必要的。最后,.value 是我们所说的触发任务依赖于另一个任务的方式。

一旦准备就绪,您应该会看到编译步骤触发 jshint :)

关于playframework - Play Framework 2.3.4 : How to Run JSHint as a Part of the Compile Task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25708086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com