2015-05-13 12 views
5

Ich möchte, dass eine sbt-Einstellung einen anderen Wert hat, wenn sie in Entwicklung (sbt run) als Produktion (/sbt start) ausgeführt wird.Verschiedene Einstellungen für die sbt-web-Pipeline-Aufgabe in Entwicklung und Produktion?

Speziell verwende ich sbt-uglify. Ich benutze es in der Entwicklung, um Javascript Assets in einer Datei zu verketten. Ich habe die Komprimierung und Mangling deaktiviert in der Entwicklung, weil es Code schwieriger zu debuggen macht.

In der Produktion möchte ich Komprimierung verwenden, um Blöcke von Debug-Code (if (DEBUG) { ... }) zu entfernen, die mit den Funktionen zum Entfernen von toten Code von Uglifyjs möglich ist.

erwartete ich dies funktioniert:

// "in Assets" to use uglify in dev & prod 
pipelineStages in Assets := Seq(uglify) 

// enable compression and mangling in prod 
UglifyKeys.compress := true 
UglifyKeys.mangle := true 

// disable in development (DOESN'T WORK! Values are always true) 
UglifyKeys.compress in Assets := false 
UglifyKeys.mangle in Assets := false 
+0

Die Verwendung von 'in Assets' und nicht ausgeführt

def optimize = System.getProperty("optimize") != null UglifyKeys.compress := optimize UglifyKeys.mangle := optimize 

tun endete 'pipelineStages' spezifisch. Müssen Sie in Entwickler Devil? –

+0

Es wird nur verwendet, um alle '* .js' in einer Datei zu verketten. Ich konnte 'sbt-concat' nicht aus Gründen verwenden, die ich nicht erinnern kann. – dwickern

Antwort

1

ich so etwas wie dieses Dann kann ich wahrscheinlich sbt dist -J-Doptimize