From c81963bf6b570bda15b22bde99b96a251efa2f7e Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Tue, 17 Dec 2019 10:01:38 +0100 Subject: [PATCH] fixes #10104 --- lib/optimize/ConcatenatedModule.js | 5 +++++ test/__snapshots__/StatsTestCases.test.js.snap | 6 +++--- .../concatenate-modules/load-chunk-function/a.js | 2 ++ .../concatenate-modules/load-chunk-function/b.js | 1 + .../concatenate-modules/load-chunk-function/c.js | 1 + .../load-chunk-function/entry1.js | 7 +++++++ .../load-chunk-function/entry2.js | 5 +++++ .../load-chunk-function/test.config.js | 5 +++++ .../load-chunk-function/webpack.config.js | 12 ++++++++++++ 9 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 test/configCases/concatenate-modules/load-chunk-function/a.js create mode 100644 test/configCases/concatenate-modules/load-chunk-function/b.js create mode 100644 test/configCases/concatenate-modules/load-chunk-function/c.js create mode 100644 test/configCases/concatenate-modules/load-chunk-function/entry1.js create mode 100644 test/configCases/concatenate-modules/load-chunk-function/entry2.js create mode 100644 test/configCases/concatenate-modules/load-chunk-function/test.config.js create mode 100644 test/configCases/concatenate-modules/load-chunk-function/webpack.config.js diff --git a/lib/optimize/ConcatenatedModule.js b/lib/optimize/ConcatenatedModule.js index 88933aa672c..c56fc6bcece 100644 --- a/lib/optimize/ConcatenatedModule.js +++ b/lib/optimize/ConcatenatedModule.js @@ -330,6 +330,7 @@ class ConcatenatedModule extends Module { ); this.dependencies = []; + this.blocks = []; this.warnings = []; this.errors = []; @@ -348,6 +349,10 @@ class ConcatenatedModule extends Module { )) { this.dependencies.push(d); } + // populate blocks + for (const d of m.blocks) { + this.blocks.push(d); + } // populate file dependencies if (m.buildInfo.fileDependencies) { for (const file of m.buildInfo.fileDependencies) { diff --git a/test/__snapshots__/StatsTestCases.test.js.snap b/test/__snapshots__/StatsTestCases.test.js.snap index 0bb66c75f90..e7750e4bc27 100644 --- a/test/__snapshots__/StatsTestCases.test.js.snap +++ b/test/__snapshots__/StatsTestCases.test.js.snap @@ -2311,7 +2311,7 @@ Entrypoint entry = entry.js `; exports[`StatsTestCases should print correct stats for scope-hoisting-multi 1`] = ` -"Hash: 2fded77648d7f30051efea8940ce0e83e06c8e38 +"Hash: 2fded77648d7f30051ef5adfc4dbbfffbf889924 Child Hash: 2fded77648d7f30051ef Time: Xms @@ -2330,7 +2330,7 @@ Child [9] ./common_lazy_shared.js 25 bytes {2} {3} {4} [built] [10] ./common_lazy.js 25 bytes {2} {3} [built] Child - Hash: ea8940ce0e83e06c8e38 + Hash: 5adfc4dbbfffbf889924 Time: Xms Built at: Thu Jan 01 1970 00:00:00 GMT Entrypoint first = vendor.js first.js @@ -2358,7 +2358,7 @@ Child `; exports[`StatsTestCases should print correct stats for side-effects-issue-7428 1`] = ` -"Hash: 901a17990846f905bacb +"Hash: 9899fa8456a2179a8d8c Time: Xms Built at: Thu Jan 01 1970 00:00:00 GMT Asset Size Chunks Chunk Names diff --git a/test/configCases/concatenate-modules/load-chunk-function/a.js b/test/configCases/concatenate-modules/load-chunk-function/a.js new file mode 100644 index 00000000000..c55f5601080 --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/a.js @@ -0,0 +1,2 @@ +import "./c"; +export default import("./b"); diff --git a/test/configCases/concatenate-modules/load-chunk-function/b.js b/test/configCases/concatenate-modules/load-chunk-function/b.js new file mode 100644 index 00000000000..a68ac2819dc --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/b.js @@ -0,0 +1 @@ +export default 'b'; diff --git a/test/configCases/concatenate-modules/load-chunk-function/c.js b/test/configCases/concatenate-modules/load-chunk-function/c.js new file mode 100644 index 00000000000..37a4d86fac7 --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/c.js @@ -0,0 +1 @@ +export default 'c'; diff --git a/test/configCases/concatenate-modules/load-chunk-function/entry1.js b/test/configCases/concatenate-modules/load-chunk-function/entry1.js new file mode 100644 index 00000000000..6929783272f --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/entry1.js @@ -0,0 +1,7 @@ +import a from "./a"; +import b from "./b"; + +it("should load fine", () => { + expect(b).toBe("b"); + return a.then(a => expect(a).toEqual(nsObj({ default: "b" }))); +}); diff --git a/test/configCases/concatenate-modules/load-chunk-function/entry2.js b/test/configCases/concatenate-modules/load-chunk-function/entry2.js new file mode 100644 index 00000000000..f23aa054519 --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/entry2.js @@ -0,0 +1,5 @@ +import a from "./a"; + +it("should load fine", () => { + return a.then(a => expect(a).toEqual(nsObj({ default: "b" }))); +}); diff --git a/test/configCases/concatenate-modules/load-chunk-function/test.config.js b/test/configCases/concatenate-modules/load-chunk-function/test.config.js new file mode 100644 index 00000000000..65c1791bce3 --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/test.config.js @@ -0,0 +1,5 @@ +module.exports = { + findBundle: function(i, options) { + return ["entry1.js", "entry2.js"]; + } +}; diff --git a/test/configCases/concatenate-modules/load-chunk-function/webpack.config.js b/test/configCases/concatenate-modules/load-chunk-function/webpack.config.js new file mode 100644 index 00000000000..97c8c74962c --- /dev/null +++ b/test/configCases/concatenate-modules/load-chunk-function/webpack.config.js @@ -0,0 +1,12 @@ +module.exports = { + entry: { + entry1: "./entry1", + entry2: "./entry2" + }, + output: { + filename: "[name].js" + }, + optimization: { + concatenateModules: true + } +};