2015-05-13 28 views
5

Chciałbym, aby ustawienie sbt miało inną wartość podczas uruchamiania (sbt run) niż w przypadku produkcji (sbt dist/sbt start).Różne ustawienia zadań rurociągu sbt-web w rozwoju w stosunku do produkcji?

W szczególności używam sbt-uglify. Używam go podczas programowania do łączenia zasobów javascript w jeden plik. Mam kompresję i maniakowanie wyłączone w rozwoju, ponieważ utrudnia to kodowanie debugowania.

W produkcji chciałbym użyć kompresji w celu usunięcia bloków kodu debugowania (if (DEBUG) { ... }), co jest możliwe przy użyciu funkcji usuwania martwych kodów z uglifyjs.

Spodziewałem się to do pracy:

// "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

Wykorzystanie 'w Assets' i prawdopodobnie nie jest Specyficzny dla 'pipelineStages'. Czy musisz uruchomić 'uglify' w dev? –

+0

Służy on tylko do łączenia wszystkich '* .js' w jeden plik. Nie mogłem użyć 'sbt-concat' z powodów, których nie pamiętam. – dwickern

Odpowiedz

1

skończyło się robić coś jak ten

def optimize = System.getProperty("optimize") != null 

UglifyKeys.compress := optimize 
UglifyKeys.mangle := optimize 

Wtedy mogę uruchomić sbt dist -J-Doptimize