4

私は sbt/play の設定にあまり詳しくありません。Play 2.3.8 を使用して JavaScript アプリケーションを提供しています。プロジェクトには次のものがあります。

.enablePlugins(SbtWeb)
.enablePlugins(play.PlayScala)
.settings(
  ...
  libraryDependencies ++= WebDependancies :+ evobufAkka,
  pipelineStages in Assets := Seq(closure, digest),
  ...
  // Some closure compiler settings
)

プロジェクトはクロージャコンパイラを使用してコードなどを縮小していますが、変更したいと思います。クロージャ コンパイラの使用をやめ、代わりに単純な npm パッケージを使用したいと考えています。sbt がいくつかのシェル タスクを実行できることは承知しています。すべての理由は、サーバーをフロントエンドから分離するためです。したがって、フロントエンドに関連するすべてのタスク (less、uglify、フィンガープリンティングなど) は、実際にはノードのような JavaScript ツールによって実行されます。sbt-web について読んでいましたが、できれば避けたいと思います。1. sbt を起動し、プロジェクトを開きます 2. コンパイルを実行します: - sbt は npm タスクを実行し、build.js ファイルを作成します。このファイルは、/public ディレクトリなどから play フレームワークを介して提供できます。3. 可能であれば、単体テスト用に別のプロセスを用意する可能性が欲しいです。

npm のセットアップに関しては、package.json を自分のproject/publicフォルダーに入れることを考えていましたproject/app/assets

それはすべて可能ですか?

2015 年 8 月 8 日更新

私はいくつかの調査を行い、外部プロセスについて知りました。私が作成したいくつかの例に基づいて:

lazy val npmBuildTask = taskKey[Unit]("Execute the npm build command to build the ui")

npmBuildTask := {
  "cd public/ && npm install" !
}  

しかし、このタスクをコンパイル プロセスに追加する方法がわかりません。

4

1 に答える 1

6

コンパイル タスクを npmBuildTask タスクに依存させることができます。

compile <<= (compile in Compile) dependsOn npmBuildTask

于 2015-08-09T11:12:45.180 に答える