Skip to content

Deprecate DDC's AMD module system in Flutter Web #142060

Description

@Markzipan

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

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listblockedIssue is blocked by another issuec: tech-debtTechnical debt, code quality, testing, etc.fyi-webFor the attention of Web platform teamteam-toolOwned by Flutter Tool teamtool-still-validIssues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.triaged-toolTriaged by Flutter Tool team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions