DDC currently supports three different formats for handling modules: DDC, AMD, and ES6. Flutter Web externally uses the AMD module system, but all of google3 and Flutter Web internally use the DDC module system (due to its greater configurability).
Consolidating module systems will give us more granular control over how libraries are loaded/updated, allowing us to better support features like hot restart, hot reload, and multi-app configurations. We don't expect any major user-visible changes from this.
This will be a multi-step process that will involve:
- Adding DDC module system support to Dart Web tooling (such as DWDS)
- Plumbing DDC module system support through flutter_tools and the engine and locking it behind a flag
- Extending core functionality (hot restart, test runners, etc.) to support the DDC module system to reach feature parity with AMD.
- Enabling the new module system and watching for unexpected changes.
- Cleaning up AMD module system code artifacts
See related issue in the Dart SDK: dart-lang/sdk#52361
DDC currently supports three different formats for handling modules: DDC, AMD, and ES6. Flutter Web externally uses the AMD module system, but all of google3 and Flutter Web internally use the DDC module system (due to its greater configurability).
Consolidating module systems will give us more granular control over how libraries are loaded/updated, allowing us to better support features like hot restart, hot reload, and multi-app configurations. We don't expect any major user-visible changes from this.
This will be a multi-step process that will involve:
See related issue in the Dart SDK: dart-lang/sdk#52361