docs(core): add migration guide links to schematics (#33258)

Angular v9 schematics should print out a link to the migration
guide associated with each schematic. This way, users have an
easy way to find more information about the automatic code
transformations they will see with `ng update`.

PR Close #33258
This commit is contained in:
Kara Erickson 2019-10-18 14:47:53 -07:00 committed by Matias Niemelä
parent 32b042014d
commit f289411fa9
5 changed files with 22 additions and 2 deletions

View File

@ -28,6 +28,10 @@ export default function(): Rule {
const allPaths = [...buildPaths, ...testPaths];
ctx.logger.info('------ Dynamic queries migration ------');
ctx.logger.info('As of Angular 9, the "static" flag defaults to false and is no ');
ctx.logger.info('longer required for your view and content queries. ');
ctx.logger.info('Read more about this in the dedicated guide: ');
ctx.logger.info('https://v9.angular.io/guide/migration-dynamic-flag');
if (!allPaths.length) {
throw new SchematicsException(

View File

@ -24,6 +24,10 @@ export default function(): Rule {
const failures: string[] = [];
ctx.logger.info('------ Missing @Injectable migration ------');
ctx.logger.info('In Angular 9, enforcement of @Injectable decorators for DI is a bit ');
ctx.logger.info('stricter. Read more about this in the dedicated guide: ');
ctx.logger.info('https://v9.angular.io/guide/migration-injectable');
if (!buildPaths.length && !testPaths.length) {
throw new SchematicsException(
'Could not find any tsconfig file. Cannot add the "@Injectable" decorator to providers ' +

View File

@ -32,8 +32,11 @@ export default function(): Rule {
const logger = context.logger;
logger.info('------ Renderer to Renderer2 Migration ------');
logger.info('As of Angular 9, the Renderer class is no longer available.');
logger.info('Renderer2 should be used instead.');
logger.info('As of Angular 9, the Renderer class is no longer available. ');
logger.info('Renderer2 should be used instead. Read more about this in ');
logger.info('the dedicated guide: ');
logger.info('https://v9.angular.io/guide/migration-renderer');
if (!allPaths.length) {
throw new SchematicsException(

View File

@ -30,6 +30,9 @@ export default function(): Rule {
logger.info(
'As of Angular 9, it is no longer supported to have Angular field ' +
'decorators on a class that does not have an Angular decorator.');
logger.info('Read more about this in the dedicated guide: ');
logger.info('https://v9.angular.io/guide/migration-undecorated-classes');
if (!allPaths.length) {
throw new SchematicsException(

View File

@ -38,6 +38,12 @@ export default function(): Rule {
const failures: string[] = [];
ctx.logger.info('------ Undecorated classes with DI migration ------');
ctx.logger.info(
'As of Angular 9, it is no longer supported to use Angular DI ' +
'on a class that does not have an Angular decorator. ');
ctx.logger.info('Read more about this in the dedicated guide: ');
ctx.logger.info('https://v9.angular.io/guide/migration-undecorated-classes');
if (!buildPaths.length) {
throw new SchematicsException(