If your interface uses NPM and Gulp to build the application, you need to run it using the NodeJS mechanism (or maybe JVM engines like Rhino or Nashorn may not be sure), and this requires an external process.
Question: Ask yourself: Do you really want to associate the deployment of your backend with the deployment of your interface? Is there no case when you just want to deploy one and not the other?
I think using SBT to deploy an interface is very nice, but if your interface is complex, you would prefer it separately from SBT.
Your JS application does not have to be used as a public Play asset, you can simply deploy it in its place and refer to it in the Play HTML template.
Sebastien lorber
source share