開発環境のassetsとプロダクション環境のassetsでは含めるファイルが変わってくることがあります。sourcemapはプロダクションには不要ですし、プロダクションのassetsでは、JSやCSSはminifyすることがあります。
sbt-webでこれらが完結していればその仕組を使って管理できますが、ビルドのassetsに含めるファイルを、Webpack・gulp・MakefileなどCLIツールを使って生成している場合、activator dist
の前に何らかのシェルコマンドを実行する必要があります。
これを実現するためのbuild.sbtは次のようになります。
build.sbt
lazy val buildAssetsWithCLI = taskKey[Unit]("Build assets files using CLI tools")
buildAssetsWithCLI := {
"make build" !
}
(packageBin in Universal) <<= (packageBin in Universal) dependsOn buildAssetsWithCLI
"make build"
の部分が実行したいシェルスクリプトになります。