blob: 9d76b61fbb92f1986f9378ef718dc4167704dcae [file] [log] [blame] [view] [edit]
# Usage
The [Dart Dev Compiler](README.md) (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`:
```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
](https://www.google.com/chrome/browser/desktop/). 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](https://github.com/dart-lang/dev_compiler/blob/master/test/codegen/sunflower/sunflower.dart) of Dart Sunflower for
an example.
## Feedback
Please file issues in our [GitHub issue tracker](https://github.com/dart-lang/dev_compiler/issues).
You can also view or join our [mailing list](https://groups.google.com/a/dartlang.org/forum/#!forum/dev-compiler).