2016-08-31 4 views
0

Ich habe viel Zeit damit verbracht, ein Problem nach dem anderen zu lösen. Ich hatte ein Problem mit endlosen Schleifen des Transpilierens. Ich fühle mich der Lösung nahe, aber ich habe einen fehlenden Block.Konfigurieren von Sbt für Play mit Babel transpiler

Wenn ich Aktivator starte, erzeugt der Transpiler neue main.js und das System erkennt eine neue Änderung. So läuft es ein anderes transpile. Es passiert immer wieder unendlich.

Hier ist meine build.sbt:

name := """angular-seed-play-java""" 
version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean, SbtWeb) 

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node 
scalaVersion := "2.10.5" 

libraryDependencies ++= Seq(
    "mysql" % "mysql-connector-java" % "6.0.3", 
    "org.webjars" % "angularjs" % "1.3.0-beta.2", 
    "org.webjars.npm" % "systemjs" % "0.19.36", 
    "org.webjars" % "jquery" % "3.1.0" 
) 

routesGenerator := InjectedRoutesGenerator 

val browserifyOutputDir = settingKey[File]("Browserify output directory") 
browserifyOutputDir := baseDirectory.value/"public"/"js" 

excludeFilter in (Assets, JshintKeys.jshint) := "*.js" 

sourceGenerators in Assets += task[Seq[File]] { 
    val outputFile = browserifyOutputDir.value/"main.js" 
    "browserify -t [ babelify --presets [ latest ] ] " + baseDirectory.value + "/public/js/main.jsx -o "+outputFile.getPath !; 
    List(outputFile) 
} 

pipelineStages := Seq(rjs, digest, gzip) 

I

excludeFilter in (Assets, JshintKeys.jshint) := "*.js" 

Linie um hinzugefügt haben die Standard Transpiler runnning zu verhindern. Auch ohne es bekomme ich einen weiteren Fehler. Hier

ist die Linie in meinem Projekt/plugins.sbt

addSbtPlugin("io.teamscala.sbt" % "sbt-babeljs" % "1.0.3") 

Ehrlich gesagt habe ich die Hälfte o sbt Buch lesen, aber ich stahl sich nicht wohl fühlen mit diesem Tool.

Antwort

0

Vom Lesen Ihrer SBT-Datei sieht aus wie Ihre Eingabe und Ausgabe das gleiche Verzeichnis verwenden. Ich vermute, dass dieses Verzeichnis in sourceDirectories ist. Wenn Sie eine Datei in diesem Verzeichnis aktualisieren, markiert sie die Aufgabe als schmutzig und tut es so, wie Sie es sagen - baut sie unendlich neu auf.

Typische sbt-Builds halten Quellen- und generierte Dateien getrennt. In einer reinen Scala-Welt geht die generierte Quelle in sourceManaged typischerweise unter target/.

Wenn ich etwas mehr herausfinden, werde ich diese Antwort aktualisieren.

Verwandte Themen