2014-11-28 9 views
7

Ho due repository git separati, uno contiene uno scala server costruito con sbt, l'altro contiene un frontend webapp creato con npm/bower/gulp.Come integrare il processo di creazione di npm/gulp/bower in sbt?

In repo del server, ho già un compito di costruire un vaso stand-alone (non il compito confezione standard); nel repository di frontend, posso creare con npm install && npm run build che risulterebbe in una directory standalone _public.

Ora vorrei includere la directory UI _public durante l'operazione di sbt building jar, mi chiedo se c'è un modo migliore per farlo in modo diverso da generare manualmente un processo esterno in sbt per chiamare npm?

+0

Cosa c'è di sbagliato nel generare un processo esterno? –

risposta

4

Se il frontend utilizza NPM e Gulp per creare l'app, è necessario eseguirlo con un motore NodeJS (o forse motori JVM come Rhino o Nashorn possono farlo?), E richiede un processo esterno.

La domanda da porsi è: vuoi veramente di accoppiare il dispiegamento del back-end dalla distribuzione del frontend? Non vi è alcun caso in cui si desidera semplicemente distribuire uno e non l'altro?

Penso che utilizzando SBT da distribuire si frontend è bello, ma se la vostra interfaccia è complessa, si preferisce tenerlo separato da SBT.

tuo JS applicazione non deve necessariamente essere servito come un bene pubblico Play, si potrebbe semplicemente distribuirlo al proprio posto e fare riferimento a esso all'interno di un modello di gioco HTML.

0

Concordo con Sebastien per mantenere il dev front-end (e forse anche distribuire), lontano dal back-end, come io sono nel processo di apprendimento quella lezione me stesso.

Detto questo, uno sguardo ai SbtWeb (workflow task) in tandem con WebJars (gestione dei pacchetti). SbtWeb ha diversi plugin che possono coprire le basi (uglify, concat, filter), e in alcuni casi penso che se il nodo è installato può usarlo direttamente.

Problemi correlati