2017-08-28 3 views
0

Le scénario, je construis avec Java Play Framework pour play-java. J'ai une dépendance que babel compile à une mauvaise ligne de sortie de "var sth = require (" sth ")". Apparemment, browserify est le seul espoir d'obtenir cette inclusion de style nodejs dans le navigateur. Mais je ne veux pas appeler manuellement browserify de la CLI sur chaque nouvelle compilation. Donc, j'ai trouvé cet extrait https://www.toptal.com/scala/using-scala-js-with-npm-and-browserify qui est plus proche de la maison, mais son cas était pour Scalajs. Alors, comment puis-je répliquer sa solution dans mon scénario?Configurer l'invocation de browserify par sbt dans build.sbt afin que les dépendances soient regroupées lors de la compilation

Répondre

2

Vous pouvez exécuter browserify à partir de sbt en créant une tâche qui s'exécute pendant la phase de génération de source d'Asset.

Voir ce projet de semences à titre d'exemple, jetez un oeil à la build.sbt pour savoir comment créer la tâche: https://github.com/maximebourreau/play-reactjs-es6-seed

Notez qu'ils DECONSEILLE < + = pour annexant à la liste de sorte que vous pouvez modifier les sourceGenerators ligne:

sourceGenerators in Assets += browserifyTask.taskValue

RemarqueCet est juste le binaire exécute browserify dans le répertoire node_modules donc vous devez installer NPM browserify et d'exécuter la tâche bablify mais vous pouvez changer les tâches qu'il exécute.

Il a également codé en dur le fichier à browerify app/assets/javascripts/main.jsx. Vous pouvez aussi changer ceci pour être une clé de réglage.

Les générateurs source s'exécuteront à chaque fois que vous modifiez un fichier situé dans sourceDirectory in Assets.

Espérons que cela aide.

+0

Merci. Je vais vérifier cela. –