スプレーを使用して単一ページのアプリを作成していますが、sbt-web で入力を処理できません。https://github.com/sbt/sbt-web/blob/master/README.mdは次のように述べているため、WebJars から始めました。
public および public-test フォルダーに関して最後に 1 つ...プロジェクトが依存する WebJar は、これらのフォルダー(たとえば、target/web/public/lib/jquery/jquery.js) に自動的に抽出されます。
ただし、ターゲットフォルダーにそのような「web」フォルダーはありません。WebJars は例としては複雑すぎて最初から始められないのではないかと思ったので、代わりに jquery.js ファイルをアセット フォルダーのルートに追加し、sbt-uglify をセットアップして処理を行いました。それでも、SbtWeb が機能しているという証拠はまだありません。sbt --debug clean run
SbtWeb または Uglify からの出力を実行して grep しましたが、エラーや警告はなく、SbtWeb または Uglify に関するものは何も見つかりません。プラグインを「推測」しているように見えることを認めてください:
[debug] deducing auto plugins based on known facts [debug] :: sorting:: found:
...
[debug] :: sorted deduced result: List(sbt.plugins.CorePlugin, com.typesafe.sbt.web.SbtWeb, com.typesafe.sbt.jse.SbtJsEngine, net.ground5hark.sbt.concat.SbtConcat, sbt.plugins.IvyPlugin, com.typesafe.sbt.jse.SbtJsTask, sbt.plugins.JvmPlugin, com.typesafe.sbt.uglify.SbtUglify, sbt.plugins.JUnitXmlReportPlugin)
これが私のディレクトリ構造です:
./build.sbt
./project/plugins.sbt
./src/main/assets/js/jquery.js
./src/main/resources/html/uikit/login.html
./src/main/scala/Boot.scala
./src/main/scala/main.scala
ここに私のプロジェクト/plugins.sbtがあります:
resolvers += Resolver.sonatypeRepo("releases")
addSbtPlugin("com.typesafe.sbt" % "sbt-web" % "1.0.2")
addSbtPlugin("net.ground5hark.sbt" % "sbt-concat" % "0.1.8")
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
これが私の ./build.sbt です:
organization := "com.test123.spray"
version := "0.1"
scalaVersion := "2.11.6"
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")
libraryDependencies ++= {
val akkaV = "2.3.9"
val sprayV = "1.3.3"
Seq(
"io.spray" %% "spray-can" % sprayV,
"io.spray" %% "spray-routing" % sprayV,
"io.spray" %% "spray-testkit" % sprayV % "test",
"com.typesafe.akka" %% "akka-actor" % akkaV,
"com.typesafe.akka" %% "akka-testkit" % akkaV % "test",
// client side dependencies
"org.webjars" % "jquery" % "2.1.4",
"org.webjars" % "uikit" % "2.24.2"
)
}
lazy val root = (project.in(file("."))).enablePlugins(SbtWeb)
pipelineStages := Seq(uglify)
includeFilter in uglify := GlobFilter("js/*.js")
./target フォルダーのルートは次のようになります。
resolution-cache/
scala-2.11/
streams/
./target/web
フォルダがありません。理由はありますか?
参考文献: