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
。
pub global activate dev_compiler
运行pub global run dartdevc -o out main.dart
或dartdevc -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 库吗?的主要内容,如果未能解决你的问题,请参考以下文章