diff --git a/test/__snapshots__/StatsTestCases.basictest.js.snap b/test/__snapshots__/StatsTestCases.basictest.js.snap index 1588ffa9e2a..eb330bc4611 100644 --- a/test/__snapshots__/StatsTestCases.basictest.js.snap +++ b/test/__snapshots__/StatsTestCases.basictest.js.snap @@ -4292,6 +4292,37 @@ enforce-min-size: enforce-min-size (webpack x.x.x) compiled successfully" `; +exports[`StatsTestCases should print correct stats for split-chunks-min-size-reduction 1`] = ` +"Entrypoint main 11.5 KiB = default/main.js +chunk (runtime: main) default/async-d.js (async-d) 50 bytes <{179}> ={821}= [rendered] + > ./d ./index.js 4:0-47 + ./d.js 50 bytes [built] [code generated] +chunk (runtime: main) default/main.js (main) 245 bytes (javascript) 6.68 KiB (runtime) >{31}< >{334}< >{383}< >{449}< >{794}< >{821}< [entry] [rendered] + > ./ main + runtime modules 6.68 KiB 9 modules + ./index.js 245 bytes [built] [code generated] +chunk (runtime: main) default/async-b.js (async-b) 176 bytes <{179}> [rendered] + > ./b ./index.js 2:0-47 + ./b.js 50 bytes [built] [code generated] + ./node_modules/shared.js?1 126 bytes [dependent] [built] [code generated] +chunk (runtime: main) default/async-c.js (async-c) 50 bytes <{179}> ={821}= [rendered] + > ./c ./index.js 3:0-47 + ./c.js 50 bytes [built] [code generated] +chunk (runtime: main) default/async-e.js (async-e) 50 bytes <{179}> ={821}= [rendered] + > ./e ./index.js 5:0-47 + ./e.js 50 bytes [built] [code generated] +chunk (runtime: main) default/async-a.js (async-a) 176 bytes <{179}> [rendered] + > ./a ./index.js 1:0-47 + ./a.js 50 bytes [built] [code generated] + ./node_modules/shared.js?1 126 bytes [dependent] [built] [code generated] +chunk (runtime: main) default/821.js (id hint: vendors) 126 bytes <{179}> ={31}= ={383}= ={449}= [rendered] split chunk (cache group: defaultVendors) + > ./c ./index.js 3:0-47 + > ./d ./index.js 4:0-47 + > ./e ./index.js 5:0-47 + ./node_modules/shared.js?2 126 bytes [built] [code generated] +webpack x.x.x compiled successfully" +`; + exports[`StatsTestCases should print correct stats for split-chunks-prefer-bigger-splits 1`] = ` "Entrypoint main 11.2 KiB = default/main.js chunk (runtime: main) default/118.js 150 bytes <{179}> ={334}= ={383}= [rendered] split chunk (cache group: default) diff --git a/test/statsCases/split-chunks-min-size-reduction/a.js b/test/statsCases/split-chunks-min-size-reduction/a.js new file mode 100644 index 00000000000..602db952e3e --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/a.js @@ -0,0 +1,2 @@ +import s from "shared?1"; +export default "a" + s; diff --git a/test/statsCases/split-chunks-min-size-reduction/b.js b/test/statsCases/split-chunks-min-size-reduction/b.js new file mode 100644 index 00000000000..4968a94ec88 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/b.js @@ -0,0 +1,2 @@ +import s from "shared?1"; +export default "b" + s; diff --git a/test/statsCases/split-chunks-min-size-reduction/c.js b/test/statsCases/split-chunks-min-size-reduction/c.js new file mode 100644 index 00000000000..bf9305242a0 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/c.js @@ -0,0 +1,2 @@ +import s from "shared?2"; +export default "c" + s; diff --git a/test/statsCases/split-chunks-min-size-reduction/d.js b/test/statsCases/split-chunks-min-size-reduction/d.js new file mode 100644 index 00000000000..bf9305242a0 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/d.js @@ -0,0 +1,2 @@ +import s from "shared?2"; +export default "c" + s; diff --git a/test/statsCases/split-chunks-min-size-reduction/e.js b/test/statsCases/split-chunks-min-size-reduction/e.js new file mode 100644 index 00000000000..bf9305242a0 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/e.js @@ -0,0 +1,2 @@ +import s from "shared?2"; +export default "c" + s; diff --git a/test/statsCases/split-chunks-min-size-reduction/index.js b/test/statsCases/split-chunks-min-size-reduction/index.js new file mode 100644 index 00000000000..3fb2bb9c0e0 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/index.js @@ -0,0 +1,5 @@ +import(/* webpackChunkName: "async-a" */ "./a"); +import(/* webpackChunkName: "async-b" */ "./b"); +import(/* webpackChunkName: "async-c" */ "./c"); +import(/* webpackChunkName: "async-d" */ "./d"); +import(/* webpackChunkName: "async-e" */ "./e"); diff --git a/test/statsCases/split-chunks-min-size-reduction/node_modules/shared.js b/test/statsCases/split-chunks-min-size-reduction/node_modules/shared.js new file mode 100644 index 00000000000..a62960ca268 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/node_modules/shared.js @@ -0,0 +1,3 @@ +// content content content content content content +// content content content content content content +export default "shared" diff --git a/test/statsCases/split-chunks-min-size-reduction/webpack.config.js b/test/statsCases/split-chunks-min-size-reduction/webpack.config.js new file mode 100644 index 00000000000..538eef92931 --- /dev/null +++ b/test/statsCases/split-chunks-min-size-reduction/webpack.config.js @@ -0,0 +1,30 @@ +const stats = { + hash: false, + timings: false, + builtAt: false, + assets: false, + chunks: true, + chunkRelations: true, + chunkModules: true, + dependentModules: true, + chunkOrigins: true, + entrypoints: true, + modules: false +}; +/** @type {import("../../../").Configuration} */ +module.exports = { + mode: "production", + entry: { + main: "./" + }, + output: { + filename: "default/[name].js" + }, + optimization: { + splitChunks: { + minSize: 0, + minSizeReduction: 300 + } + }, + stats +};