The Dart Dev Compiler (DDC) is an experimental development tool and transpiler. In particular, the ES6 backend is still incomplete, under heavy development, and not yet ready for production use.
With those caveats, we welcome feedback.
You can install DDC via pub:
$ pub global activate dev_compiler
The above will install a dartdevc
executable. To update to the latest DDC, you can just re-run this step.
By default, DDC runs in static checking mode. The DDC checker is strictly stronger than the standard Dart analyzer: it reports extra errors and warnings. For example, given the following main.dart
:
void main() { List<String> list = ["hello", "world"]; for (var item in list) { print(item + 42); } }
the Dart analyzer will not report a static error or warning even though the program will clearly fail (in checked mode). Running with --strong mode:
$ dartanalyzer --strong main.dart
will display a severe error. Modifying 42
to '42'
will correct the error.
For code that statically type checks, DDC can be used to generate EcmaScript 6 (ES6) code:
$ dartdevc -o out main.dart
The generated output will be in ‘out/foo.js’. DDC generates one ES6 file per library. It is a modular compiler: the whole program is not necessary.
DDC output may be tested most easily in Chrome . It runs in Chrome 47 and later. Launch a local server via:
$ dartdevc --server main.dart
Launch Chrome at the URL shown by the above (e.g., http://localhost:8080). Remember to open the Developer Tools to see the output of a print.
DDC does not fully support dart:html
, but it does allow raw access to the JavaScript DOM. See our modified version of Dart Sunflower for an example.
Please file issues in our GitHub issue tracker.
You can also view or join our mailing list.