This repository has been archived by the owner on Sep 16, 2022. It is now read-only.
Remove PLATFORM_*
(directives|pipes) from AngularDart
#363
Milestone
This is a formal intent to deprecate (3.X) and remove the
PLATFORM_*
flags from AngularDart.i.e. the following pattern:
Would no longer function in AngularDart
4.0.0
.Background
Originally, these flags were used to reduce code duplication across modules, as it implicitly added
directives: const [ ... ]
andpipes: const [ ... ]
into your entire compile process. However, this greatly complicates the compile process, and actually only worked properly withbarback
.In AngularDart 4.0.0+, we'll be experimenting with alternative ways to compile AngularDart, including keeping support for
barback
(pub transformers), but also future Dart build tools, and bazel support. Both of the latter tool sets cannot support this feature - they are modular compilers that can't resolve global application flags well.New compiler
In 3.1+, we'll have a flag to use a brand new compiler, name pending (but internally we refer to it as the "strong compiler". It uses Dart analysis summaries - metadata produced and used by the analyzer for IntelliJ, DartDevCompiler, and more - and it means we are able to finally solve the following:
useValue
providers #218OpaqueToken
withInject
#288And probably more I missed. I think we can all agree it's worth the compromise 😁
The text was updated successfully, but these errors were encountered: