如何在GWT中禁用代码拆分?

时间:2010-09-27 10:05:38

标签: java gwt

我们有一个非常大的GWT项目,导致一个大约2Mb的单片应用程序。分解它的明显方法是使用分裂点。例如,我们的应用程序是菜单驱动的,因此每个菜单操作背后的逻辑可能是一个分裂点。此外,调用GWT RPC的代码也可以是一个分裂点。通过这种方式,一个2Mb的应用程序可能会分解为一个300K的启动应用程序,其余部分在首次使用时加载。

GWT将对GWT.runAsync()的调用视为可以将JS分解为在运行时异步加载的较小部分的位置。例如要设置调用doSomething()的分割点,我们这样写:

GWT.runAsync(new RunAsyncCallback() {
  public void onFailure(Throwable caught) {
    Window.alert("Oh dear could not load app");
  }

  public void onSuccess() {
    doSomething();
  }
});

GWT编译器将看到此代码,并将其标记为拆分的候选者,并将代码拆分为较小的片段,这些片段将在首次使用时加载。

我们遇到的问题是,如果我们将分割点放入代码中,那么构建需要花费10-50倍的时间来执行。我想在处理包含大量类的项目时,代码效率不高。所以2分钟的构建成为20-100分钟的构建,这是不可接受的。

所以问题是,我怎样才能将分裂点放入代码中,但是除非我明确要求,否则会阻止编译器分裂?我设想日常开发会忽略分裂点,但夜间或生产构建会分裂。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

-draftCompile 作为编译器参数传递。 看一下这篇文章:Improving GWT compilation speed