Javascript 我可以使用预先编译的模块,比如小部件库吗?

Javascript 我可以使用预先编译的模块,比如小部件库吗?,javascript,gwt,compilation,pre-compilation,Javascript,Gwt,Compilation,Pre Compilation,我将开发一个生成gwt应用程序的系统。这些应用程序共享很多小部件,编译时间对我来说非常重要。 我想知道我是否可以准备一组小部件,将它们封装在一个没有入口点的模块中,只编译一次,然后在其他模块继承的其他项目中重用编译后的代码 ModuleA(仅共享小部件) Module1(app1的其余部分继承自ModuleA) Module2(app2的其余部分继承自ModuleA) 每次生成新应用程序时,我是否可以编译Module2而不重新编译ModuleA 我还使用了superDevMode和所有编译优

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

  • ModuleA(仅共享小部件)
  • Module1(app1的其余部分继承自ModuleA)
  • Module2(app2的其余部分继承自ModuleA)
每次生成新应用程序时,我是否可以编译Module2而不重新编译ModuleA

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

我不关心GWT优化


谢谢

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

即使使用jsni,除了
基本类型
覆盖类型之外,您也无法在模块之间传递对象

我所看到的最好的解决方案是,您可以使用将小部件从ModuleA导出到javascript,我不久前写的这篇文章可以帮助您

但是在将ModuleA导出为javascript API之后,您必须在GWT中使用jsni包装这个API,以便从ModuleB和ModuleC调用它

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


当您导出ModuleA时,您必须编译所有内容,尽管ModuleB中没有使用它。如果您必须使用基本类型和覆盖类型与ModuleA交换信息,那么ModuleB中的代码将是一团混乱。还有许多其他问题

据我所知,你不能那样做。每次编译时都必须编译整个项目(包括共享小部件)。GWT让您这样做是因为,否则它将无法完成GWT擅长的所有优化。您认为GWT exporter是允许我的客户扩展我生成的GWT应用程序的好解决方案吗?当然!,它就是为此而设计的