Pregunta

Tengo un scalatra proyecto en el que quiero servir de JavaScript que se ha generado a partir de una scala.js proyecto.

Tengo un multi-proyecto sbt construir que me permite construir estos proyectos con éxito.Es decir, puedo usar la compilación (y ejecutar) tareas en el scalatra proyecto;y puedo usar el packageJS tarea en el scala.js proyecto.

Sin embargo, me gustaría mucho que ser capaz de tener la scalatra compilar tarea dependerá de la scala.js packageJS tarea;así que cuando el Scalatra se compila el proyecto, el código Javascript se genera automáticamente en la Scala.js proyecto.

En mi multi-proyecto de construir.sbt archivo que he intentado:

lazy val wwwjs = project // Scala.js project

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

Pero al momento de compilar el Scalatra proyecto de esta falla con "la configuración no se encuentra en wwwjs#wwwjs_2.10;0.1:'packageJS'.Se requiere de www#www_2.10;0.1 compilar".

Soy bastante nuevo en sbt (y Scalatra y Scala.js!) - ¿alguien puede aclararme cuanto a cómo hacer esto?

Gracias :)

¿Fue útil?

Solución

Lo que usted quiere aquí no es una dependencia entre proyectos (que es lo que dependsOn en un proyecto lo hace), pero entre tasks.

Yo no estoy familiarizado con Scalatra, pero para el sbt lado debe ser muy similar a Jugar, y tenemos un éxito plantilla para Jugar proyectos con Scala.js aquí:https://github.com/vmunier/play-with-scalajs-example/blob/master/project/Build.scala

En particular, me derivan las siguientes básico de la adaptación de la construcción de la imagen de arriba:

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))
  )

Como alternativa, utilice fullOptJS en lugar de fastOptJS para la totalidad versión optimizada (pero que tarda varios segundos para reconstruir cada vez que realice un cambio).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top