如何将npm / gulp / bower构建过程集成到sbt中?

问题描述 投票:7回答:3

[我有两个单独的git repos,一个保存一个使用sbt构建的scala服务器,另一个保存一个使用npm / bower / gulp构建的webapp前端。

在服务器仓库中,我已经有一个构建独立jar的任务(不是标准包任务);在前端存储库中,我可以使用npm install && npm run build进行构建,这将生成一个独立目录_public

现在,我想在sbt构建jar任务期间包括UI目录_public,我想知道是否有比在sbt中手动生成外部进程来调用npm更好的方法呢?

scala sbt npm gulp bower
3个回答
2
投票

如果您的前端使用NPM和Gulp来构建应用程序,则需要使用NodeJS引擎运行它(或者像Rhino或Nashorn这样的JVM引擎可以做到这一点?不确定),它需要一个外部进程。

问您自己的问题是:您是否真的要将后端部署与前端部署耦合在一起?在任何情况下,您是否只想部署一个而不部署另一个?

我认为使用SBT部署您的前端很好,但是如果您的前端很复杂,您宁愿将其与SBT分开。

您的JS应用不一定需要作为Play的公共资产,您可以将其部署到自己的位置并在Play HTML模板中引用它。


0
投票

我同意Sebastien的意见,使前端开发人员(甚至可能部署)与后端保持独立,因为我正在自己学习这一课。


0
投票

sbt-web和webjars所依赖的当前状态是,它们几乎跟不上Node.js和npm的增长。例如,sbt-hbs插件已不再维护,我的经验表明,它不适用于任何Node.js版本8或更高版本。在某些基于Webjar的前端工具中,对sbt 1.0的支持也不完整。因此,与问题所建议的不同,通过sbt直接生成npm进程来构建前端是比许多更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.