15.0.0-next.5 (2022-10-05)
Breaking Changes
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@Keyframes foo { ... }
will become:
@Keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
orShadowDom
- define keyframes rules in global stylesheets (e.g styles.css)
- define keyframes rules programmatically in code.
- change the component's view encapsulation to the
router
- Previously, the
RouterOutlet
would immediately
instantiate the component being activated during navigation. Now the
component is not instantiated until the change detection runs. This
could affect tests which do not trigger change detection after a router
navigation. In rarer cases, this can affect production code that relies
on the exact timing of component availability.
Deprecations
core
-
- The ability to pass an
NgModule
to theprovidedIn
option for
@Injectable
andInjectionToken
is now deprecated.
providedIn: NgModule
was intended to be a tree-shakable alternative to
NgModule providers. It does not have wide usage, and in most cases is used
incorrectly, in circumstances whereprovidedIn: 'root'
should be
preferred. If providers should truly be scoped to a specific NgModule, use
NgModule.providers
instead.- The ability to set
providedIn: 'any'
for an@Injectable
or
InjectionToken
is now deprecated.
providedIn: 'any'
is an option with confusing semantics and is almost
never used apart from a handful of esoteric cases internal to the framework. - The ability to pass an
compiler
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
compiler-cli
Commit | Description |
---|---|
support hasInvalidatedResolutions. (#47585) |
core
Commit | Description |
---|---|
deprecate providedIn: NgModule and providedIn: 'any' (#47616)
|
localize
Commit | Description |
---|---|
add polyfill in polyfills array instead of polyfills.ts (#47569) |
router
Commit | Description |
---|---|
auto-unwrap default exports when lazy loading (#47586) | |
make RouterOutlet name an Input so it can be set dynamically (#46569) |
Special Thanks
Alan Agius, Alex Rickabaugh, Alexander Wiebe, Andrew Kushnir, Andrew Scott, Ciprian Sauliuc, Dmytro Mezhenskyi, Dylan Hunn, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Kristiyan Kostadinov, Martin Probst, Ole M, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz and mgechev