2

私は sbt-web を使用しており、本番用の js ファイルのみを醜くしたいと考えています (開発中のコンパイル時間を節約します)。ただし、実行すると:

sbt prod:run

私は同じ結果を得る

sbt run

つまり、以下のスコープ設定prod:runをピックアップしていないようです。pipelineStages in prod

私はこれがどのように機能するかを誤解していると確信しており、いくつかの明確さと正しい使用法を望んでいます. http://www.scala-sbt.org/0.13/tutorial/Scopes.htmlと SO に関するすべての同様の投稿を読みましたが、電球はまだ点灯していません。もっと良い方法があればいいのですが、学習モードにあるので、これがうまくいかない理由を知りたいです。

完全な ./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"
  )
}

// sbt-web pipeline for combining, minifying, etc... client-side files
// see plugins.sbt for sbt dependencies that provide this capability.
lazy val root = (project.in(file(".")))
    .enablePlugins(SbtWeb)
    .configs(prod)

lazy val prod = config("prod") extend(Compile) describedAs("Production")

Concat.groups := Seq(
  "app.js" -> group(Seq("js/b.js", "javas/a.js")),
  "vendors.js" -> group(Seq("lib/jquery/jquery.js", "lib/uikit/js/uikit.js"))
)

pipelineStages := Seq(concat, gzip)

// run uglify in prod only
pipelineStages in prod := Seq(concat, uglify, gzip)

(managedClasspath in Runtime) += (packageBin in Assets).value
4

0 に答える 0