(サンプル プロジェクトが提供されています) sbt-concatが、プリプロセッサ タスクから生成される可能性のあるスタイルから生じるスタイルシートを見つけて連結するように設計されたとおりに動作することができません。私の本番アプリでは、それを使用してsbt-sassから選択した縮小出力ファイルをバンドルしようとしています。そのプロジェクトの複雑なセットアップ内では機能しないため、サンプル プロジェクトを作成して、まったく機能するかどうかを確認しました。サンプルプロジェクトでも機能しません。これは、いくつかのバンドルを作成しようとするテストプロジェクトbuild.sbt
です。考えられるほぼすべての可能性を使用して、それらのいずれかが機能するかどうかを確認します (公開 Github リポジトリ、クローンを作成してすぐに問題を再現できるはずです):
import com.typesafe.sbt.web.Import.WebKeys._
import com.typesafe.sbt.web.pipeline.Pipeline
name := """sbt-concat-test"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala, SbtWeb)
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws
)
resolvers += Resolver.sonatypeRepo("releases")
includeFilter in (Assets, LessKeys.less) := "*.less"
excludeFilter in (Assets, LessKeys.less) := "_*.less"
val myPipelineTask = taskKey[Pipeline.Stage]("Some pipeline task")
myPipelineTask := { mappings => println(mappings); mappings }
pipelineStages := Seq(myPipelineTask, concat)
Concat.groups := Seq(
"style-group1.css" -> group(sourceDirectory.value ** "*.css"),
"style-group2.css" -> group(baseDirectory.value ** "*.css"),
"style-group3.css" -> group((sourceDirectory in Assets).value ** "*.css"),
"style-group4.css" -> group(target.value ** "*.css"),
"style-group5.css" -> group(Seq("core.css", "styles/core.css", "assets/styles/core.css", "app/assets/styles/core.css")),
"style-group6.css" -> group(Seq("lessStyle.css", "ui/lessStyle.css", "styles/ui/lessStyle.css", "assets/styles/ui/lessStyle.css", "app/assets/styles/ui/lessStyle.css")),
"style-group7.css" -> group(Seq("sassStyle.css", "ui/sassStyle.css", "styles/ui/sassStyle.css", "assets/styles/ui/sassStyle.css", "app/assets/styles/ui/sassStyle.css")),
"style-group8.css" -> group(Seq("**/*.css"))
)
私はテスト; clean; reload; stage
から実行しactivator
ます。アセット ソース ファイルがフォルダーにコピーされていることがわかりtarget
ます。宣言されたバンドルの結果は次のとおりです。
- style-group1.cssが存在しません
- style-group2.css
button.css
にはとの内容が含まれていますcore.css
- style-group3.css
core.css
にはとの内容が含まれていますbutton.css
- style-group4.cssが存在しません
- style-group5.cssには、
core.css
- style-group6.cssには、コンパイル済みのコンテンツのみが含まれています
lessStyle.scss
- style-group7.cssには、コンパイル済みのコンテンツのみが含まれています
sassStyle.scss
- style-group8.cssが存在しません
css
2 番目と 3 番目のケースではプリプロセッサによって生成されたファイルが取得されないのに、オーダーメイドの 6 番目と 7 番目のケースでは取得される理由がわかりません。おそらく注目に値するのは、すべてのソース ファイルの show s の結果と、Sass および Less タスクからの派生myPipelineTask
およびソースマップです。PathMapping
css