Skip to content

Commit fd937b3

Browse files
alan-agius4filipesilva
authored andcommitted
fix(@angular-devkit/build-angular): correctly handle scripts when using subresource-integrity option
Fixes #19829 (cherry picked from commit d0cc0cb)
1 parent 07cc9d5 commit fd937b3

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

packages/angular_devkit/build_angular/src/browser/tests/options/subresource-integrity_spec.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describeBuilder(buildWebpackBrowser, BROWSER_BUILDER_INFO, (harness) => {
2020
const { result } = await harness.executeOnce();
2121

2222
expect(result?.success).toBe(true);
23-
harness.expectFile('dist/index.html').content.toContain('integrity=');
23+
harness.expectFile('dist/index.html').content.not.toContain('integrity=');
2424
});
2525

2626
it(`does not add integrity attribute when 'false'`, async () => {
@@ -32,7 +32,7 @@ describeBuilder(buildWebpackBrowser, BROWSER_BUILDER_INFO, (harness) => {
3232
const { result } = await harness.executeOnce();
3333

3434
expect(result?.success).toBe(true);
35-
harness.expectFile('dist/index.html').content.toContain('integrity=');
35+
harness.expectFile('dist/index.html').content.not.toContain('integrity=');
3636
});
3737

3838
it(`does add integrity attribute when 'true'`, async () => {
@@ -46,5 +46,25 @@ describeBuilder(buildWebpackBrowser, BROWSER_BUILDER_INFO, (harness) => {
4646
expect(result?.success).toBe(true);
4747
harness.expectFile('dist/index.html').content.toMatch(/integrity="\w+-[A-Za-z0-9\/\+=]+"/);
4848
});
49+
50+
it(`does not issue a warning when 'true' and 'scripts' is set.`, async () => {
51+
await harness.writeFile('src/script.js', '');
52+
53+
harness.useTarget('build', {
54+
...BASE_OPTIONS,
55+
subresourceIntegrity: true,
56+
scripts: ['src/script.js'],
57+
});
58+
59+
const { result, logs } = await harness.executeOnce();
60+
61+
expect(result?.success).toBe(true);
62+
harness.expectFile('dist/index.html').content.toMatch(/integrity="\w+-[A-Za-z0-9\/\+=]+"/);
63+
expect(logs).not.toContain(
64+
jasmine.objectContaining<logging.LogEntry>({
65+
message: jasmine.stringMatching(/subresource-integrity/),
66+
}),
67+
);
68+
});
4969
});
5070
});

packages/angular_devkit/build_angular/src/webpack/plugins/scripts-webpack-plugin.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export class ScriptsWebpackPlugin {
9393
}
9494

9595
compilation.assets[filename] = source;
96+
compilation.hooks.chunkAsset.call(chunk, filename);
9697
}
9798

9899
apply(compiler: Compiler): void {

0 commit comments

Comments
 (0)