diff --git a/crates/mako/src/module_graph.rs b/crates/mako/src/module_graph.rs index cdff39630..be2ff8687 100644 --- a/crates/mako/src/module_graph.rs +++ b/crates/mako/src/module_graph.rs @@ -28,7 +28,9 @@ impl ModuleGraph { } pub fn get_entry_modules(&self) -> Vec { - self.entries.iter().cloned().collect() + let mut entry_modules = self.entries.iter().cloned().collect::>(); + entry_modules.sort(); + entry_modules } pub fn add_module(&mut self, module: Module) { diff --git a/e2e/fixtures/css.css-merge-multi-entries/expect.js b/e2e/fixtures/css.css-merge-multi-entries/expect.js new file mode 100644 index 000000000..3f5183464 --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/expect.js @@ -0,0 +1,18 @@ +const assert = require("assert"); +const { parseBuildResult } = require("../../../scripts/test-utils"); +const { files } = parseBuildResult(__dirname); + +assert( + files['common.css'].includes(` +body::after { + content: "common_1"; +} +body::after { + content: "common_2"; +} +body::after { + content: "common_3"; +} +`.trim()), + "css merge in mpa should works" +); diff --git a/e2e/fixtures/css.css-merge-multi-entries/mako.config.json b/e2e/fixtures/css.css-merge-multi-entries/mako.config.json new file mode 100644 index 000000000..67b207b0d --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/mako.config.json @@ -0,0 +1,21 @@ +{ + "entry": { + "a": "./src/a.ts", + "b": "./src/b.ts", + "c": "./src/c.ts" + }, + "codeSplitting": { + "strategy": "advanced", + "options": { + "minSize": 1, + "groups": [ + { + "name": "common", + "allowChunks": "entry", + "minChunks": 2, + "minSize": 1 + } + ] + } + } +} diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/a.css b/e2e/fixtures/css.css-merge-multi-entries/src/a.css new file mode 100644 index 000000000..b759bca08 --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/a.css @@ -0,0 +1,3 @@ +body { + color: azure; +} diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/a.ts b/e2e/fixtures/css.css-merge-multi-entries/src/a.ts new file mode 100644 index 000000000..28e7e1fe4 --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/a.ts @@ -0,0 +1,6 @@ +import "./common_1.css"; +import "./common_2.css"; +import "./common_3.css"; +import "./a.css"; +console.log('a'); + diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/b.css b/e2e/fixtures/css.css-merge-multi-entries/src/b.css new file mode 100644 index 000000000..7cfe2bf44 --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/b.css @@ -0,0 +1,3 @@ +body { + color: blue; +} diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/b.ts b/e2e/fixtures/css.css-merge-multi-entries/src/b.ts new file mode 100644 index 000000000..59ae557cc --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/b.ts @@ -0,0 +1,5 @@ +import "./common_2.css"; +import "./common_1.css"; +import "./common_3.css"; +import "./b.css"; +console.log('b'); diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/c.css b/e2e/fixtures/css.css-merge-multi-entries/src/c.css new file mode 100644 index 000000000..d30a50c8b --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/c.css @@ -0,0 +1,3 @@ +body { + color: cyan; +} diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/c.ts b/e2e/fixtures/css.css-merge-multi-entries/src/c.ts new file mode 100644 index 000000000..b67db9e8b --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/c.ts @@ -0,0 +1,4 @@ +import "./common_2.css"; +import "./common_3.css"; +import "./common_1.css"; +console.log("c"); diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/common_1.css b/e2e/fixtures/css.css-merge-multi-entries/src/common_1.css new file mode 100644 index 000000000..f56add4be --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/common_1.css @@ -0,0 +1,3 @@ +body::after { + content: "common_1"; +} diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/common_2.css b/e2e/fixtures/css.css-merge-multi-entries/src/common_2.css new file mode 100644 index 000000000..b623e4d30 --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/common_2.css @@ -0,0 +1,3 @@ +body::after { + content: "common_2"; +} diff --git a/e2e/fixtures/css.css-merge-multi-entries/src/common_3.css b/e2e/fixtures/css.css-merge-multi-entries/src/common_3.css new file mode 100644 index 000000000..e9ba2e9df --- /dev/null +++ b/e2e/fixtures/css.css-merge-multi-entries/src/common_3.css @@ -0,0 +1,3 @@ +body::after { + content: "common_3"; +}