angular-docs-cn/aio/content/guide/updating-to-version-9.md

4.8 KiB

Updating to Angular Version 9

This guide contains everything you need to know about updating to the next Angular version.

Updating CLI Apps

If your application uses the CLI, you can update to version 9 automatically with the help of the ng update script:

ng update @angular/cli @angular/core

The script will run a series of small migrations that will transform the code of your application to be compatible with version 9.

If you're curious about the specific migrations being run (e.g. what code is changing and why), see the automated migrations section.

Changes and Deprecations in Version 9

{@a breaking-changes}

New Breaking Changes

  • Angular now compiles with Ivy by default. See Ivy compatibility section.

  • Typescript 3.4 and 3.5 are no longer supported. Please update to Typescript 3.6.

  • tslib is now listed as a peer dependency rather than a direct dependency. Users not using the CLI will need to manually install tslib via yarn add tslib or npm install tslib --save.

{@a deprecations}

New Deprecations

API Replacement Notes
entryComponents none See entryComponents
ANALYZE_FOR_ENTRY_COMPONENTS none See ANALYZE_FOR_ENTRY_COMPONENTS
ModuleWithProviders without a generic ModuleWithProviders with a generic See ModuleWithProviders section
esm5 and fesm5 distribution in @angular/* npm packages esm2015 and fesm2015 entrypoints See esm5 and fesm5
TestBed.get TestBed.inject Same behavior, but type safe.

{@a removals}

New Removals of Deprecated APIs

Package API Replacement Notes
@angular/core Renderer Renderer2 Migration guide.
@angular/core RootRenderer RendererFactory2 none
@angular/core RenderComponentType RendererType2 none
@angular/common DeprecatedI18NPipesModule CommonModule none
@angular/common DeprecatedCurrencyPipe CurrencyPipe none
@angular/common DeprecatedDatePipe DatePipe none
@angular/common DeprecatedDecimalPipe DecimalPipe none
@angular/common DeprecatedPercentPipe PercentPipe none
@angular/forms NgFormSelectorWarning none
@angular/forms ngForm element selector ng-form element selector none
@angular/service-worker versionedFiles files In the service worker configuration file ngsw-config.json, replace versionedFiles with files. See Service Worker Configuration.

{@a ivy}

Ivy Compatibility

In Version 9, Angular Ivy is the default rendering engine. If you haven't heard of Ivy, you can read more about it in the Angular Ivy guide.

For guidance on debugging and a list of minor changes associated with Ivy, please see our compatibility guide.

For help with opting out of Ivy, please see the instructions here.

{@a migrations}

Automated Migrations for Version 9

Read about the migrations the CLI handles for you automatically: