在大型企业应用程序中使用ClientBundle?

Jos*_*ust 7 gwt

我们正在使用GWT构建一个大型企业应用程序(几十个模块),需要决定是否使用ClientBundle.我很好奇StackOverflow GWT社区作为交易制定者和交易破坏者对这种用例的利弊.

就我们目前所见:

优点

  • 消除了占用服务器资源的所有图像/ css文件
  • 由于上述原因,客户端加载速度更快(即内联图片网址)
  • CSS名称被混淆,因此消除了名称空间冲突
  • CSS会自动优化/验证
  • 消除了未使用的CSS类(上图)
  • 对类名的Java引用将替换为可重构的css接口
  • UiBinder对类名的引用被替换为可重构的css接口
  • 没有更大的"main.css"失败,因为资源是模块包特定的

缺点

  • 对于维护,CSS在混淆模式下变得不可读,或者在调试模式下变得非常冗长
  • 基本CSS工作需要更多步骤(如添加类)
  • 所有开发人员都必须了解Java,CSS,HTML的细微差别
  • GWT本身不支持CSS3和其他at-rules(即@ font-face)
  • 增加编译时间

谢谢!

Dan*_*rka 8

我一直在使用m-gwt的客户端捆绑.

困扰我的一件事是为没有开发模式的设备设计样式.因此样式可能意味着重新编译完整的应用程序.

通常使用文字函数可以在ClientBundle中使用所有CSS3规则,因此应该没问题.它与@media查询有点小问题.你可以将css注入一个简单的textresource作为一种解决方法,但它有点难看.

当您谈论几个gwt模块时,请考虑使用多个clientbundle,这样您仍然可以使用分割点来控制下载文件大小(取决于.js文件的大小)

我在几个大的gwt应用程序中使用了clientbundle,对我来说,编译时检查和重构支持击败了仍然在客户端捆绑中的小怪癖.