【发布时间】:2014-07-09 19:50:36
【问题描述】:
我们的团队正在编写一个服务器-客户端应用程序,其中前端是一个使用 Spring MVC Java 后端的 Angular.js 单页应用程序。后端为浏览器端使用的应用程序文件和 REST 端点提供服务。我们使用 Maven 作为应用程序的主要构建系统。
我们喜欢在最后利用 require.js 和 r.js 来缩小应用程序,并且我们还使用客户端依赖管理。目前我们正在使用 bower 下载所需的 Javascript 库,但我觉得将客户端依赖项下载到 src/main/webapp 并不合适,因为这是一个源文件夹。但是,为了避免每次客户端文件发生更改时都重新构建整个前端模块,这对我们来说似乎是唯一明智的方法。这样我们就可以启动一个 Web 服务器,它会自动获取更改而无需重新启动,但正如我所说,这不适合 Maven 的文件夹布局。
我正在尝试使用 Webjar,这在我们面向 Maven 的构建和依赖管理中似乎是一个更好的选择。因为在 Servlet 3.0 容器中,webjar 资源是在服务器容器路径上自动提供的,因此非常易于使用和管理它们。也可以创建一个 require.js 配置来引用 webjar 中包含的库,因为它们在 web 服务器路径上的方式与静态文件相同,从客户端应用程序的角度来看,服务是透明地完成的。
我唯一的问题是我不知道如何使用这种布局实现 r.js 缩小,因为源文件位于 jar 文件中,r.js 无法访问它们。此外,require.js 配置指的是构建时根本不存在的运行时服务器路径。
我看到webjars now have some integration with Require.js + Play Framework,但在我们的例子中,我们并没有使用 Play,只是简单的 Spring MVC。我真的希望有一种方法可以处理这种情况,因为我喜欢 Webjar 的客户端依赖处理方式。
【问题讨论】:
标签: java javascript maven minify webjars