首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT SuperDevMode抛出如下:找到多个片段0源地图。太多排列

GWT SuperDevMode抛出如下:找到多个片段0源地图。太多排列
EN

Stack Overflow用户
提问于 2012-12-11 11:24:16
回答 2查看 3.7K关注 0票数 4

我正在使用SuperDevMode与Chrome,它工作良好,直到源代码地图突然停止显示在Chrome。

CodeServer抛出以下异常:Multiple fragment 0 sourcemaps found. Too many permutations.

在汇编期间,它显示:

代码语言:javascript
复制
Compiling 5 permutations
  Compiling permutation 0...
  Source Maps Enabled
  Compiling permutation 1...
  Source Maps Enabled
  Compiling permutation 2...
  Source Maps Enabled
  Compiling permutation 3...
  Source Maps Enabled
  Compiling permutation 4...
  Source Maps Enabled
Compile of permutations succeeded

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-07-26 13:32:01

默认情况下,GWT编译6个基本排列,每个浏览器类别一个。

  • 火狐,所有版本
  • 所有Webkit浏览器(Safari、Chrome、Android浏览器等)
  • IE6和IE7
  • IE8
  • IE9 (和IE10)
  • 歌剧

这方面有一个报道的问题:问题7458:当user.agent丢失时,Super模式不应该编译6个排列

关于问题说明的建议解决办法:

限制gwt.xml文件中的浏览器排列。例如,如果您正在使用Chrome或Safari:

代码语言:javascript
复制
<set-property name="user.agent" value="safari"/>

此外,如果您使用的是Sencha,我还建议您阅读以下文章:使用GWT编译器进行更好的构建

根据这篇文章,我还在我的gwt.xml中添加了以下一行:

代码语言:javascript
复制
<collapse-all-properties />

最后,我对SuperDev模式的配置如下:

代码语言:javascript
复制
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<set-property name="compiler.useSourceMaps" value="true" />
<set-property name="user.agent" value="safari"/>
<collapse-all-properties />

因此,GWT只编译一个置换:

代码语言:javascript
复制
binding: user.agent=safari
binding: compiler.useSourceMaps=true
binding: locale=en
Compiling module com.mycompany.Main
...
Compiling 1 permutation
  Compiling permutation 0...
  Source Maps Enabled
Compile of permutations succeeded
票数 4
EN

Stack Overflow用户

发布于 2012-12-11 14:45:09

如果您添加了区域设置,但是没有显式地添加en区域设置,并且/或在加载页面之前不“删除”default区域设置,则会发生这种情况。

例如,在我的模块中,我有:

代码语言:javascript
复制
<extend-property name="locale" values="fr" />
<set-property-fallback name="locale" value="fr"/>

使用此设置,有两个区域设置:frdefault (但是不再使用default区域设置,因为我重写了回退到fr)。

在启动SuperDevMode时,它会编译2个排列(可能是因为它强制localeen,但实际上并没有检查模块中是否存在这样的区域设置)。

我以前已经启动了这个应用程序,打开了Dev模式,但后来停止并重新启动了SuperDevMode。当我在Chrome中刷新页面时,因为它仍然处于dev模式(状态存储在localStorage中),它从SuperDevMode加载脚本并尝试立即加载源映射,这失败了,因为SuperDevMode编译了2个排列,而不仅仅是一个。

单击Dev并编译将强制SuperDevMode使用浏览器环境中的属性重新编译(这里是locale=fr,因为这是回退)。因此,它编译了一个置换,并且源映射再次工作。

在我的具体情况下,我需要一个置换;我所要做的就是添加<set-property name="locale" value="fr"/>

你一定也有类似的情况。

抱歉,这是我能分享的全部信息。没有权威。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13819338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档