2

我们的团队正在编写一个服务器-客户端应用程序,其中前端是一个使用 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 现在与 Require.js + Play Framework 有一些集成,但在我们的案例中,我们并没有使用 Play,只是简单的 Spring MVC。我真的希望有办法处理这种情况,因为我喜欢 Webjar 客户端依赖处理的方式。

4

1 回答 1

4

您需要在构建过程中使用资产编译器/管道。可能有很多选择,但我知道的一个是 wro4j:http ://alexo.github.io/wro4j/

于 2014-05-21T18:12:44.247 回答