1

我一直在 Google Maps 上使用 Dart 和 AngularDart 构建一个 Web 应用程序。尽管我测试了开发 Dart sdk 和今天最新的 dart sdk(版本 1.0.0.10_R30798),但我从流程开始就注意到了一个问题,但仍然面临这个问题。

首先,我使用的包是 shadow_dom、google_maps 和 AngularDart。

当我使用 --no-minify 选项构建我的应用程序时,它工作得很好,即使在所有浏览器中摆弄 shadow_dom 一周后(我应该在其他一切正常工作之前添加 shadow_dom 脚本)。

问题是当我正常构建(缩小)甚至直接使用带有 --minify 选项的 Dart2JS 编译器时,应用程序不会运行并且我得到一个异常。

非缩小版 缩小版

在上面你可以看到两种情况,第一种情况是应用程序正确加载了谷歌地图,而在第二张图片中谷歌地图没有加载,我得到了这个异常。

更重要的是,如果我使用 3rd 方缩小器来缩小原始 main.dart.js 文件(未缩小的),它工作得非常好。

谢谢

4

2 回答 2

1

google_maps 包2.x版本已经移除了对dart:mirrors的依赖,并且只基于dart:js。所以缩小问题应该来自代码的另一部分。

此外,我刚刚测试了 map-simple 示例--minify它可以工作。

于 2014-01-08T13:52:58.397 回答
0

@MirrorsUsed如果受影响的是第 3 方代码,通常可以通过注释解决。
使用您自己的代码更容易,您只需添加@reflectable到受影响的函数/方法/字段以确保它们被保留。

缩小名称时,可能很难找到应该包含哪些函数/方法/字段。也许您可以通过查看堆栈跟踪来获得一些知识。

缩小通常会丢弃未在任何地方引用的代码。{{ expr }}在 Polymer 中,这是因为尚未考虑 HTML 中的聚合物表达式。如果您仅通过反射调用部分代码,则也无法识别。

我没有关于 Angular 和缩小的经验。
这只是关于通过pub build.

于 2014-01-08T13:43:43.013 回答