如何将dart编译成javascript?

时间:2016-10-21 08:01:39

标签: javascript dart

我使用dart2js编译我的.dart文件,但编译后的.js文件包含我不希望看到的代码。如何将dart编译成javascript?

飞镖码:

import 'dart:html';


void main() {
  querySelector("#answer").onClick.listen(check);
}

void check(MouseEvent event){
  var answer;
  answer = (querySelector("#text_answer") as InputElement).value;
  answer = answer.toUpperCase();

  if (answer == "CHOCOLATE") {
    querySelector("#text").text = "Smells like... you are right! Well, try to find somthing round, made of glass;)";
    return;
  } else {
    querySelector("#text").text = "No, No, No. Try one more time. There’s white and milk and dark. These three types you might eat. As a type of candy, it really can’t be beat";
  }
}

编译的.js代码有超过7000行(没有注释)。

1 个答案:

答案 0 :(得分:1)

包含了相当多的代码来模拟Dart提供的功能,但是这些代码无法直接转换为ES5(如类,mixins等)。

还有一些代码包含了polyfills缺少浏览器功能,以使相同的Dart代码在所有浏览器中都能正常运行,例如jQuery。

理论上,这段代码可以放在库文件(like jQuery)中,但该文件很大。

要减小Dart使用树抖动的大小(actually it's tree-growing去除所有未实际从main()文件引用的代码(直接或传递)。还有所有类的方法未使用或未使用其他部分的类和库使用的库的功能,可以删除。

这意味着对于每个应用程序,实际包含在JS输出中的Dart基本库的部分可能并且可能会有所不同。 因此,除了从您手写的应用程序代码生成的JS之外,不能添加到dart.js的默认index.html文件。