From 34323ff58470aafa9d7211bbcda61c4304605608 Mon Sep 17 00:00:00 2001 From: Miles Malerba Date: Wed, 5 Oct 2022 21:17:05 +0000 Subject: [PATCH 1/3] fix(material/schematics): gracefully skip broken css files also don't treat files like something.css.map as a CSS file. --- integration/mdc-migration/golden/src/broken.css | 5 +++++ .../mdc-migration/golden/src/dont-migrate-me.css.skip | 4 ++++ .../mdc-migration/sample-project/src/broken.css | 5 +++++ .../sample-project/src/dont-migrate-me.css.skip | 4 ++++ src/cdk/schematics/ng-update/find-stylesheets.ts | 2 +- .../ng-generate/mdc-migration/rules/theming-styles.ts | 11 ++++++++--- .../rules/ts-migration/runtime-migration.ts | 2 +- .../migrations/legacy-components-v15/index.ts | 6 +++++- 8 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 integration/mdc-migration/golden/src/broken.css create mode 100644 integration/mdc-migration/golden/src/dont-migrate-me.css.skip create mode 100644 integration/mdc-migration/sample-project/src/broken.css create mode 100644 integration/mdc-migration/sample-project/src/dont-migrate-me.css.skip diff --git a/integration/mdc-migration/golden/src/broken.css b/integration/mdc-migration/golden/src/broken.css new file mode 100644 index 000000000000..0fd1c6dde9ca --- /dev/null +++ b/integration/mdc-migration/golden/src/broken.css @@ -0,0 +1,5 @@ +/* Does not compile (missing semicolons) */ +.mat-button { + width: 100 + height: 100 +} diff --git a/integration/mdc-migration/golden/src/dont-migrate-me.css.skip b/integration/mdc-migration/golden/src/dont-migrate-me.css.skip new file mode 100644 index 000000000000..fe4cfdd8c542 --- /dev/null +++ b/integration/mdc-migration/golden/src/dont-migrate-me.css.skip @@ -0,0 +1,4 @@ +/* Should not be migrated (filename is not .css or .scss) */ +.mat-button { + width: 100px; +} diff --git a/integration/mdc-migration/sample-project/src/broken.css b/integration/mdc-migration/sample-project/src/broken.css new file mode 100644 index 000000000000..0fd1c6dde9ca --- /dev/null +++ b/integration/mdc-migration/sample-project/src/broken.css @@ -0,0 +1,5 @@ +/* Does not compile (missing semicolons) */ +.mat-button { + width: 100 + height: 100 +} diff --git a/integration/mdc-migration/sample-project/src/dont-migrate-me.css.skip b/integration/mdc-migration/sample-project/src/dont-migrate-me.css.skip new file mode 100644 index 000000000000..fe4cfdd8c542 --- /dev/null +++ b/integration/mdc-migration/sample-project/src/dont-migrate-me.css.skip @@ -0,0 +1,4 @@ +/* Should not be migrated (filename is not .css or .scss) */ +.mat-button { + width: 100px; +} diff --git a/src/cdk/schematics/ng-update/find-stylesheets.ts b/src/cdk/schematics/ng-update/find-stylesheets.ts index 13f7f651fe09..8702835f2f5d 100644 --- a/src/cdk/schematics/ng-update/find-stylesheets.ts +++ b/src/cdk/schematics/ng-update/find-stylesheets.ts @@ -10,7 +10,7 @@ import {join, Path} from '@angular-devkit/core'; import {Tree} from '@angular-devkit/schematics'; /** Regular expression that matches stylesheet paths */ -const STYLESHEET_REGEX = /.*\.(css|scss)/; +const STYLESHEET_REGEX = /.*\.(css|scss)$/; /** * Finds stylesheets in the given directory from within the specified tree. diff --git a/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts b/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts index 65398700d5b7..fa9fc82e460f 100644 --- a/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts +++ b/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts @@ -22,10 +22,10 @@ export class ThemingStylesMigration extends Migration { RootExit: root => this._handleRootNode(root, stylesheet.filePath, namespace), }, ]); - processor.process(stylesheet.content, {syntax: scss}).sync(); + try { + processor.process(stylesheet.content, {syntax: scss}).sync(); + } catch (e) { + console.warn(`Failed to process stylesheet: `, stylesheet.filePath); + } } /** Returns the namespace of the given at-rule if it is importing from @angular/material. */ From 2b550e3b65e714a35c17de2f443e2d38f0579971 Mon Sep 17 00:00:00 2001 From: Miles Malerba Date: Wed, 5 Oct 2022 21:24:24 +0000 Subject: [PATCH 2/3] fixup! fix(material/schematics): gracefully skip broken css files --- src/material/schematics/ng-generate/mdc-migration/BUILD.bazel | 1 + .../ng-generate/mdc-migration/rules/theming-styles.ts | 3 ++- .../ng-update/migrations/legacy-components-v15/index.ts | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/material/schematics/ng-generate/mdc-migration/BUILD.bazel b/src/material/schematics/ng-generate/mdc-migration/BUILD.bazel index beed7ee26cd0..581c49f575cc 100644 --- a/src/material/schematics/ng-generate/mdc-migration/BUILD.bazel +++ b/src/material/schematics/ng-generate/mdc-migration/BUILD.bazel @@ -91,6 +91,7 @@ jasmine_node_test( "//src/material/schematics:collection_assets", "//src/material/schematics:ng_generate_assets", ], + shard_count = 10, deps = [ ":unit_tests_bundle", # Runtime dependencies needed by the test and actual migration sources. These need diff --git a/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts b/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts index fa9fc82e460f..91c99f87ce3d 100644 --- a/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts +++ b/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts @@ -40,7 +40,8 @@ export class ThemingStylesMigration extends Migration { try { processor.process(stylesheet.content, {syntax: scss}).sync(); } catch (e) { - console.warn(`Failed to process stylesheet: `, stylesheet.filePath); + console.error(e); + console.warn(`Failed to process stylesheet: ${stylesheet.filePath} (see error above).`); } } From 568f32e6b406fd0e774044515de35ea2fe8366ed Mon Sep 17 00:00:00 2001 From: Miles Malerba Date: Wed, 5 Oct 2022 22:31:56 +0000 Subject: [PATCH 3/3] fixup! fix(material/schematics): gracefully skip broken css files --- .../ng-generate/mdc-migration/rules/theming-styles.ts | 4 ++-- .../ng-update/migrations/legacy-components-v15/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts b/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts index 91c99f87ce3d..74054ddba117 100644 --- a/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts +++ b/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.ts @@ -40,8 +40,8 @@ export class ThemingStylesMigration extends Migration { try { processor.process(stylesheet.content, {syntax: scss}).sync(); } catch (e) { - console.error(e); - console.warn(`Failed to process stylesheet: ${stylesheet.filePath} (see error above).`); + this.logger.error(`${e}`); + this.logger.warn(`Failed to process stylesheet: ${stylesheet.filePath} (see error above).`); } }