Skip to content

Commit aaf1c49

Browse files
LingyuCoderCopilot
andauthored
feat: stabilize SubresourceIntegrityPlugin (#12483)
* feat: stabilize SubresourceIntegrityPlugin API * Update website/docs/en/plugins/rspack/subresource-integrity-plugin.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update website/docs/zh/plugins/rspack/subresource-integrity-plugin.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clippy --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent cabd5a4 commit aaf1c49

File tree

15 files changed

+46
-53
lines changed

15 files changed

+46
-53
lines changed

packages/rspack/etc/core.api.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2465,7 +2465,7 @@ interface Experiments_2 {
24652465
RslibPlugin: typeof RslibPlugin;
24662466
// (undocumented)
24672467
RstestPlugin: typeof RstestPlugin;
2468-
// (undocumented)
2468+
// @deprecated (undocumented)
24692469
SubresourceIntegrityPlugin: typeof SubresourceIntegrityPlugin;
24702470
// (undocumented)
24712471
swc: {
@@ -6612,6 +6612,7 @@ declare namespace rspackExports {
66126612
LoaderTargetPlugin,
66136613
OutputFileSystem,
66146614
WatchFileSystem,
6615+
SubresourceIntegrityPlugin,
66156616
web,
66166617
lazyCompilationMiddleware,
66176618
node,
@@ -7799,7 +7800,7 @@ type StringOrBufferCallback = (err: NodeJS.ErrnoException | null, data?: string
77997800
type SubresourceIntegrityHashFunction = "sha256" | "sha384" | "sha512";
78007801

78017802
// @public (undocumented)
7802-
class SubresourceIntegrityPlugin extends NativeSubresourceIntegrityPlugin {
7803+
export class SubresourceIntegrityPlugin extends NativeSubresourceIntegrityPlugin {
78037804
constructor(options?: SubresourceIntegrityPluginOptions);
78047805
// (undocumented)
78057806
apply(compiler: Compiler): void;

packages/rspack/src/exports.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ import {
139139
SubresourceIntegrityPlugin
140140
} from "./builtin-plugin";
141141

142+
export { SubresourceIntegrityPlugin };
143+
142144
interface Web {
143145
FetchCompileAsyncWasmPlugin: typeof FetchCompileAsyncWasmPlugin;
144146
}
@@ -371,11 +373,14 @@ interface Experiments {
371373
cleanup: () => Promise<void>;
372374
};
373375
RemoveDuplicateModulesPlugin: typeof RemoveDuplicateModulesPlugin;
376+
/**
377+
* @deprecated Use `rspack.SubresourceIntegrityPlugin` instead
378+
*/
379+
SubresourceIntegrityPlugin: typeof SubresourceIntegrityPlugin;
374380
EsmLibraryPlugin: typeof EsmLibraryPlugin;
375381
RsdoctorPlugin: typeof RsdoctorPlugin;
376382
RstestPlugin: typeof RstestPlugin;
377383
RslibPlugin: typeof RslibPlugin;
378-
SubresourceIntegrityPlugin: typeof SubresourceIntegrityPlugin;
379384
/**
380385
* @deprecated Use `rspack.lazyCompilationMiddleware` instead
381386
*/
@@ -412,6 +417,7 @@ export const experiments: Experiments = {
412417
}
413418
},
414419
RemoveDuplicateModulesPlugin,
420+
SubresourceIntegrityPlugin,
415421
EsmLibraryPlugin,
416422
/**
417423
* Note: This plugin is unstable yet
@@ -431,7 +437,6 @@ export const experiments: Experiments = {
431437
* @internal
432438
*/
433439
RslibPlugin,
434-
SubresourceIntegrityPlugin,
435440
lazyCompilationMiddleware,
436441
swc: {
437442
minify,

tests/rspack-test/configCases/sri/async-entrypoints/rspack.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ module.exports = {
1111
},
1212
plugins: [
1313
new rspack.HtmlRspackPlugin(),
14-
new rspack.experiments.SubresourceIntegrityPlugin()
14+
new rspack.SubresourceIntegrityPlugin()
1515
]
1616
};

tests/rspack-test/configCases/sri/css-chunk-extract/rspack.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { CssExtractRspackPlugin, experiments } = require("@rspack/core");
1+
const { CssExtractRspackPlugin, SubresourceIntegrityPlugin } = require("@rspack/core");
22
const fs = require("fs");
33
const path = require("path");
44

@@ -13,7 +13,7 @@ module.exports = (_, { testPath }) => ({
1313
},
1414
plugins: [
1515
new CssExtractRspackPlugin(),
16-
new experiments.SubresourceIntegrityPlugin({
16+
new SubresourceIntegrityPlugin({
1717
hashFuncNames: ["sha256", "sha384"],
1818
}),
1919
{

tests/rspack-test/configCases/sri/css-chunk-mix/rspack.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { CssExtractRspackPlugin, experiments } = require("@rspack/core");
1+
const { CssExtractRspackPlugin, SubresourceIntegrityPlugin } = require("@rspack/core");
22
const fs = require("fs");
33
const path = require("path");
44

@@ -13,7 +13,7 @@ module.exports = (_, { testPath }) => ({
1313
},
1414
plugins: [
1515
new CssExtractRspackPlugin(),
16-
new experiments.SubresourceIntegrityPlugin({
16+
new SubresourceIntegrityPlugin({
1717
hashFuncNames: ["sha256", "sha384"],
1818
}),
1919
{

tests/rspack-test/configCases/sri/css-chunk/rspack.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { experiments } = require("@rspack/core");
1+
const { SubresourceIntegrityPlugin } = require("@rspack/core");
22
const fs = require("fs");
33
const path = require("path");
44

@@ -12,7 +12,7 @@ module.exports = (_, { testPath }) => ({
1212
css: true
1313
},
1414
plugins: [
15-
new experiments.SubresourceIntegrityPlugin({
15+
new SubresourceIntegrityPlugin({
1616
hashFuncNames: ["sha256", "sha384"],
1717
}),
1818
{

tests/rspack-test/configCases/sri/link-tags/rspack.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ module.exports = {
5555
},
5656
plugins: [
5757
new rspack.HtmlRspackPlugin(),
58-
new rspack.experiments.SubresourceIntegrityPlugin(),
58+
new rspack.SubresourceIntegrityPlugin(),
5959
new AddLinksPlugin()
6060
]
6161
};

tests/rspack-test/configCases/sri/mf-splitting/rspack.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const rspack = require("@rspack/core");
2-
const { experiments } = rspack;
3-
const { SubresourceIntegrityPlugin } = experiments;
2+
const { SubresourceIntegrityPlugin } = rspack;
43

54
const createConfig = (runtimeChunk, mfPlugin) => ({
65
mode: "production",

tests/rspack-test/configCases/sri/mf/rspack.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { experiments, container } = require("@rspack/core");
1+
const { SubresourceIntegrityPlugin, container } = require("@rspack/core");
22

33
module.exports = {
44
target: "web",
55
optimization: {
66
moduleIds: "named"
77
},
88
plugins: [
9-
new experiments.SubresourceIntegrityPlugin(),
9+
new SubresourceIntegrityPlugin(),
1010
new container.ModuleFederationPlugin({
1111
name: "app",
1212
filename: "remoteEntry.js",

tests/rspack-test/configCases/sri/only-concatenated-module/rspack.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module.exports = {
2222
moduleIds: "named",
2323
},
2424
plugins: [
25-
new rspack.experiments.SubresourceIntegrityPlugin(),
25+
new rspack.SubresourceIntegrityPlugin(),
2626
{
2727
apply(compiler) {
2828
compiler.hooks.done.tap('TestPlugin', () => {

0 commit comments

Comments
 (0)