Skip to content

Commit dcdb937

Browse files
committed
fix(@angular/pwa): support updating projects that use the targets property
1 parent 15c36eb commit dcdb937

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

packages/angular/pwa/pwa/index.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ function updateIndexFile(options: PwaOptions): Rule {
5555
const workspace = getWorkspace(host);
5656
const project = workspace.projects[options.project as string];
5757
let path: string;
58-
if (project && project.architect && project.architect.build &&
59-
project.architect.build.options.index) {
60-
path = project.architect.build.options.index;
58+
const projectTargets = project.targets || project.architect;
59+
if (project && projectTargets && projectTargets.build && projectTargets.build.options.index) {
60+
path = projectTargets.build.options.index;
6161
} else {
6262
throw new SchematicsException('Could not find index file for the project');
6363
}
@@ -115,15 +115,14 @@ function addManifestToAssetsConfig(options: PwaOptions) {
115115

116116
const assetEntry = join(normalize(project.root), 'src', 'manifest.json');
117117

118-
if (!project.architect) {
119-
throw new Error(`Architect is not defined for this project.`);
118+
const projectTargets = project.targets || project.architect;
119+
if (!projectTargets) {
120+
throw new Error(`Targets are not defined for this project.`);
120121
}
121122

122-
const architect = project.architect;
123-
124123
['build', 'test'].forEach((target) => {
125124

126-
const applyTo = architect[target].options;
125+
const applyTo = projectTargets[target].options;
127126
const assets = applyTo.assets || (applyTo.assets = []);
128127

129128
assets.push(assetEntry);

packages/angular/pwa/pwa/index_spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('PWA Schematic', () => {
5151
const tree = schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
5252
const configText = tree.readContent('/angular.json');
5353
const config = JSON.parse(configText);
54-
const swFlag = config.projects.bar.architect.build.configurations.production.serviceWorker;
54+
const swFlag = config.projects.bar.targets.build.configurations.production.serviceWorker;
5555
expect(swFlag).toEqual(true);
5656
});
5757

@@ -101,9 +101,9 @@ describe('PWA Schematic', () => {
101101
const tree = schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
102102
const configText = tree.readContent('/angular.json');
103103
const config = JSON.parse(configText);
104-
const architect = config.projects.bar.architect;
104+
const targets = config.projects.bar.targets;
105105
['build', 'test'].forEach((target) => {
106-
expect(architect[target].options.assets).toContain('projects/bar/src/manifest.json');
106+
expect(targets[target].options.assets).toContain('projects/bar/src/manifest.json');
107107
});
108108
});
109109
});

0 commit comments

Comments
 (0)