【问题标题】:How to transpile a Dart lib to a JavaScript one? [duplicate]如何将 Dart 库转换为 JavaScript 库? [复制]
【发布时间】:2017-06-19 09:04:47
【问题描述】:

如果我开发了一个 Dart 库,是否有一种习惯可以将 Dart 库转译 到 JavaScript 库?

假设 Dart 库主要导出两个东西:一个类和一个函数。在 JavaScript 方面,需要一个 JavaScript 类/对象和一个函数。


更新

我期望可以在这种情况下解决:我在我的 Dart 库中定义了一个类 ArrayList(指令 library 和关键字 export 被使用),然后我使用某种方式将这个 Dart 库转换为 JavaScript 库,其中有一些定义,例如: function ArrayList() { ... } 。因此,在客户端 JavaScript 中,可以像这样使用它:var a = new ArrayList()

【问题讨论】:

    标签: dart dart-pub


    【解决方案1】:
    dart2js
    Usage: dart2js [options] dartfile
    
    Compiles Dart to JavaScript.
    
    Common options:
      -o <file> Generate the output into <file>.
      -c        Insert runtime type checks and enable assertions (checked mode).
      -m        Generate minified output.
      -h        Display this message (add -v for information about all options).
    

    如果你有一个pub package(和pubspec.yaml),那么你可以运行

    pub build
    

    将整个包转译为 JavaScript(以及一些框架用于代码生成的正在运行的转换器)

    【讨论】:

    • 谢谢 Günter Zöchbauer。我试过 dart2js;所以,结果是整个闭包调用,我需要手动清理它吗?因为我在输出 js 中没有看到与 Dart 文件中相同的类名和函数名或类似的名称。
    • 不确定您的评论是关于什么的。输出不应包含任何类。输出是 ES5,经过 tree-shaking 和最小化。
    • 我的意思是我在我的库中使用了 dart2js,它的输出基本上是 (function() {...})()。我的 js 在这里:repl.it/Iq37/0。 ArrayList 是我的库中定义的类名。
    • 您希望文件包含什么?
    • 我希望有一个包含一些对象定义的 js 输出,例如:function ArrayList() { ... }。在客户端 js 中,可以使用如下对象: var a = new ArrayList() .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多