SCBTのScBETRA.JS PackageJSタスクに依存するScalatraコンパイルタスクの作成方法

StackOverflow https://stackoverflow.com//questions/23023026

  •  21-12-2019
  •  | 
  •  

質問

Scala.jsプロジェクトから生成されたJavaScriptを提供したいScalatraプロジェクトを持っています。

私は私がこれらのプロジェクトの両方をうまく構築することを可能にするマルチプロジェクトSBTビルドを持っています。 つまり、Scalatraプロジェクトでコンパイル(および実行)タスクを使用できます。そして、scala.jsプロジェクトでPackageJSタスクを使用できます。

しかし、Scala.js packagejsタスクに依存しているScalatraコンパイルタスクを依存できるようになりたいです。そのため、Scalatraプロジェクトがコンパイルされると、JavaScriptはScala.jsプロジェクトで自動的に生成されます。

マイマルチプロジェクトビルド.betファイルで私が試してみました:

lazy val wwwjs = project // Scala.js project

lazy val www = project // Scalatra project
  .dependsOn(wwwjs % "compile->packageJS")
.

Scalatraプロジェクトをコンパイルするとき、これは「wwwjs#wwwjs_2.10で見つからない設定」で失敗します。www#www_2.10; 0.1コンパイル "。

SBT(およびScalatraとScala.js!)にはかなり新しいことができます - これを行う方法について誰かが私を啓発することができますか?

ありがとうございました:)

役に立ちましたか?

解決

ここにあるものは、プロジェクトの間の依存性ではありません(プロジェクト上のdependsOn)がtasksの間です。

私はScalatraに慣れていませんが、SBT側には遊ぶと非常に似ているはずです。 https://github.com/vmunier/play.-with-scalajs-example / blob / master / project / build.scala

特に、上記のビルドからの次の基本的な適応を導き出します。

import scala.scalajs.sbtplugin.ScalaJSPlugin._ // if Build.scala
import ScalaJSKeys._

lazy val wwwjs = project // Scala.js project

lazy val www = project // Scalatra project
  .settings(
    compile in Compile <<= (compile in Compile) dependsOn (fastOptJS in (wwwjs, Compile))
  )
.

あるいは、完全に最適化されたバージョンのためにfullOptJSの代わりにfastOptJSを使用します(ただし、変更を加えるたびに数秒かかります)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top