单独的前端应用程序 - 构建和部署策略

gra*_*hez 5 javascript java frontend gruntjs

有一种观点认为,在构建丰富的浏览器应用程序(JS-heavy)时,应将其视为单独的应用程序,而不是"后端"应用程序的一部分.我想知道在这样的设置中如何实现构建和部署?

假设我有java WAR文件暴露基于JSON的API(无论是JAX-RS还是其他) - 没有视图.然后我有我的前端应用程序的静态内容:js脚本html视图,CSS样式,图像等.我可以使用专用的构建工具,例如GruntJS,用于缩小/预处理等项目.

但现在我有点卡住了.这种构建应该是什么结果?仅使用Grunt创建的静态文件来分隔WAR?部署怎么样?我应该将这些WAR混合到一个完整的应用程序中,还是部署两个单独的例如example.com服务静态和那些静态用于api.example.com获取数据.

另一个问题是关于发展.因此,我希望我的js和css连接和缩小,但它对开发来说不太好(调试很难等).有什么技巧可以在开发模式下使用单独的源文件并仅在prod构建时连接?

asd*_*232 0

我已经很久没有涉足 Java WebDev 了,所以我无法帮助您了解具体细节。但这种抽象背后的想法通常是公开一个公共后端 API,从而能够使用驻留在任何主机上的任何语言编写的任何类型的客户端连接到后端。如果您碰巧开发 API 和客户端,您的问题应该是客户端和 API 是否需要单独部署。如果有,则单独构建它们。如果没有,就不要。就我个人而言,我更喜欢您的 api.example.com 和 example.com 方案。

关于你的第二个主题:我曾经构建过一个 ANT 脚本来做到这一点。将 JS“类”放在单独的“命名空间”文件中,并让脚本连接并缩小它们。您必须以正确的顺序将文件输入到构建脚本中,这在小型项目中很容易管理。我不知道现在是否有自动化工具。