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

标签 java javascript frontend gruntjs

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

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

但现在我有点卡住了。这种构建的结果应该是什么?仅使用 Grunt 创建的静态文件分离 WAR?部署呢?我应该将这些 WAR 混合到一个成熟的应用程序中还是部署两个单独的应用程序,例如example.com 提供静态服务,这些静态服务使用 api.example.com 获取数据。

另一个问题是关于发展的。因此,我希望将我的 js 和 css 连接起来并缩小,但这对开发来说不是很好(调试很困难等)。在开发模式下拥有单独的源文件并仅在产品构建时连接是否有任何技巧?

最佳答案

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

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

关于java - 独立的前端应用程序 - 构建和部署策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16130733/

相关文章:

javascript - Firefox 中的 localStorage 不可靠

javascript - 如何访问 nuxt.js 中的路由器对象

java.lang.String 无法转换为 JSONObject

java - 在当前运行的模拟器 (Android) 上运行应用程序

java - 使用JMS实现通知需要什么?

java - 运行另一个 firefox.exe,而不是默认使用 Remote WebDriver 实现的 firefox.exe

javascript - 单击另一个按钮后如何隐藏和显示一个按钮?

javascript - 使用 AngularJS 指令从 select 中删除重复项

mysql - 数据库网页前端

frontend - Bootstrap 编译完成是什么意思?