Usage

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.

Installation

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.

Running the static checker

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.

Generating ES6

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.

Running in Server Mode

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

Testing in Chrome

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.

Feedback

Please file issues in our GitHub issue tracker.

You can also view or join our mailing list.