【问题标题】:Dart2js producing large javascript files, even with little code?Dart2js 生成大型 javascript 文件,即使代码很少?
【发布时间】:2014-01-14 20:57:31
【问题描述】:

我是 dart 新手,正在 Windows 上使用 Dart 编辑器。

我注意到我编译的 javascript 很大,所以我不断删除越来越多的代码以查看导致它的原因,但我认为我没有得到任何结果。这是我现在的程序:

import 'dart:html';

void main() {
  var video = querySelector("#vid");
}

字面意思就是这样。除了一条指令,我已经删除了所有内容。

这是生成的 javascript(不适合内联):

https://gist.github.com/DSteve595/504887a19a05614bcc94

我做错了什么?这个程序几乎是空的!

【问题讨论】:

    标签: javascript dart dart-editor


    【解决方案1】:

    您在 gist 中链接到的文件是 48k。如果您使用 --minify 选项运行 dart2js,则可以将大小减小很多。

    您的代码可能很简单,但 dart2js 默认必须加载大量库,并且还必须加载您导入的 dart:html 库。从长远来看,如果您用 JavaScript 编写程序并导入所有 jQuery,您认为您的文件会有多大?

    您可以在https://www.dartlang.org/docs/dart-up-and-running/contents/ch04-tools-dart2js.html 阅读有关 dart2js 的更多信息。

    【讨论】:

    • 你知道,我什至没有考虑过不再导入 JQuery。也许这还不错。
    【解决方案2】:

    dart2js 需要生成大量代码来模拟 JavaScript 中的 Dart 行为。类型、错误检查、数学等都需要在 JavaScript 中进行模拟。这会导致大量额外代码,并且一个微不足道的“Hello World”应用程序看起来会大得惊人。

    您可以通过缩小和 gzip 压缩来减小交付的 JavaScript 的大小。

    dart2js 随着时间的推移变得越来越好,但在 JavaScript 中模拟 Dart 行为总是会产生大小成本。

    【讨论】:

    • 好吧,所以大部分只是我无法摆脱的样板?显然曾经包含在 Dart 编辑器中的 frogc 编译器呢?看起来这样生成的代码更加紧凑。
    • 对。 frog 是不支持的旧编译器,我不会使用它。显然青蛙没有涵盖整个 Dart 语言,这可能是它更小的原因。
    猜你喜欢
    • 2017-02-27
    • 2021-07-17
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多