dart 可以生成可读的 javascript 库吗?

Posted

技术标签:

【中文标题】dart 可以生成可读的 javascript 库吗?【英文标题】:Can dart produce readable javascript libraries? 【发布时间】:2016-04-24 08:06:09 【问题描述】:

目标

我想写一个 javascript 库(框架),但需要 OOP 和 mixins。

尝试使用 typescript,但它不支持 mixin(手册上说支持,但编译器/规范没有任何与 mixin 相关的内容)。

打字稿

在打字稿中,以下代码:

class Greeter 
    greeting: string;
    constructor(message: string) 
        this.greeting = message;
    
    greet() 
        return "Hello, " + this.greeting;
    

编译为:

var Greeter = (function () 
    function Greeter(message) 
        this.greeting = message;
    
    Greeter.prototype.greet = function () 
        return "Hello, " + this.greeting;
    ;
    return Greeter;
)();

然后客户可以简单地调用:

var greeter = new Greeter("world");

飞镖

dart 可以做类似的事情吗?有人可以展示一下吗?

主要目标是生成的 javascript 代码是可读的,最好是所有 dart extras 驻留在不同的脚本中。

我见过 this question 和 this answer,但似乎都没有生成可读的 JS 文件,就像上面的打字稿示例一样。

【问题讨论】:

您可能想要使用新的 Dart 开发编译器 (DDC)。据我所知,它还不是测试版,但它的目标之一是输出可读的 js。 github.com/dart-lang/dev_compiler/blob/master/README.md 【参考方案1】:

正如@SetLadd 提到的https://github.com/dart-lang/dev_compiler 是为此目的而构建的(除其他外)。一些人报告说他们已经能够在不久前产生可用的输出。

dev_compiler 有一个命令行工具dartdevc

安装 DART SDK 运行pub global activate dev_compiler 运行pub global run dartdevc -o out main.dartdartdevc -o out main.dart(取决于您的路径设置)。 更多详情请见https://github.com/dart-lang/dev_compiler/blob/master/USAGE.md

【讨论】:

【参考方案2】:

The Dart Dev Compiler (DDC) 是一个实验性的开发工具和转译器。 今天还处于非常早期的阶段。 初始提交时间为 2014 年 11 月 17 日。

DDC 尝试尽可能干净地映射到惯用的 EcmaScript 6 (ES6)。

也许有一天,我们可以自信地说:“它是一个成熟的开发工具和转译器”,但目前DDC还处于非常早期的阶段。

【讨论】:

以上是关于dart 可以生成可读的 javascript 库吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 GCC 生成可读的程序集?

如何从 JavaScript 调用使用 DDC 创建的 Dart 库?

chrome 开发者工具中的人类可读 javascript

javascript 人类可读的字节数

JavaScript 人类可读的毫秒时间戳

来自python的javascript可读的json