我可以使用像小部件库这样的预编译模块吗?

时间:2013-04-19 11:19:26

标签: javascript gwt compilation pre-compilation

我将开发一个生成gwt应用程序的系统。这些应用程序共享很多小部件,编译时间对我来说非常重要。 我想知道我是否可以准备一组小部件,将它们包装在没有入口点的模块中,只编译一次,然后在其他模块继承的其他项目中重用已编译的代码。

  • ModuleA(仅限共享小部件)
  • Module1(app1的其余部分,继承自ModuleA)。
  • Module2(app2的其余部分,继承自ModuleA)。

我可以在每次生成新应用程序时编译Module2而无需重新编译ModuleA吗?

我还使用了superDevMode和所有编译优化, 但这成为一个主要问题:)

我不关心GWT优化。

由于

1 个答案:

答案 0 :(得分:1)

如果不使用jsni,则无法编译模块并从其他模块调用它们。

即使使用jsni,除了primitiveOverlay类型之外,您也无法在模块之间传递对象。

我看到的最佳解决方案是您可以使用gwt-exporter将小部件从ModuleA导出到javascript,我前面写过的tutorial可以帮助您。

但是在将ModuleA导出为javascript API之后,您必须使用GWT中的jsni来封装此api,以便从ModuleB和ModuleC调用它。

恕我直言,当你排除你的ModuleA时,不值得你在ModuleB的编译中节省时间。

认为在导出ModuleA时,必须编译所有内容,尽管它不在ModuleB中使用。如果您必须使用基元和叠加类型与ModuleA交换信息,那么您在ModuleB中的代码将是一团糟。还有很多其他问题。