Skip to content

Commit

Permalink
fix: chunk groups' order when building mpa
Browse files Browse the repository at this point in the history
  • Loading branch information
xusd320 committed Jan 20, 2025
1 parent 9c55f1c commit c731eff
Show file tree
Hide file tree
Showing 13 changed files with 77 additions and 5 deletions.
4 changes: 2 additions & 2 deletions crates/mako/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ mod tree_shaking;
mod umd;
mod watch;

use std::collections::HashMap;
use std::collections::{BTreeMap, HashMap};
use std::fmt;
use std::path::{Path, PathBuf};

Expand Down Expand Up @@ -128,7 +128,7 @@ pub enum Platform {
#[derive(Deserialize, Serialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct Config {
pub entry: HashMap<String, PathBuf>,
pub entry: BTreeMap<String, PathBuf>,
pub output: OutputConfig,
pub resolve: ResolveConfig,
#[serde(deserialize_with = "deserialize_manifest", default)]
Expand Down
6 changes: 3 additions & 3 deletions crates/mako/src/module_graph.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use std::collections::{HashMap, HashSet};
use std::collections::{BTreeSet, HashMap, HashSet};
use std::fmt;

use fixedbitset::FixedBitSet;
Expand All @@ -15,15 +15,15 @@ use crate::module::{Dependencies, Dependency, Module, ModuleId};
pub struct ModuleGraph {
pub id_index_map: HashMap<ModuleId, NodeIndex<DefaultIx>>,
pub graph: StableDiGraph<Module, Dependencies>,
entries: HashSet<ModuleId>,
entries: BTreeSet<ModuleId>,
}

impl ModuleGraph {
pub fn new() -> Self {
Self {
id_index_map: HashMap::new(),
graph: StableDiGraph::new(),
entries: HashSet::new(),
entries: BTreeSet::new(),
}
}

Expand Down
18 changes: 18 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/expect.js
Original file line number Diff line number Diff line change
@@ -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"
);
21 changes: 21 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/mako.config.json
Original file line number Diff line number Diff line change
@@ -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
}
]
}
}
}
3 changes: 3 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/a.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body {
color: azure;
}
6 changes: 6 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import "./common_1.css";
import "./common_2.css";
import "./common_3.css";
import "./a.css";
console.log('a');

3 changes: 3 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/b.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body {
color: blue;
}
5 changes: 5 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/b.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import "./common_2.css";
import "./common_1.css";
import "./common_3.css";
import "./b.css";
console.log('b');
3 changes: 3 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/c.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body {
color: cyan;
}
4 changes: 4 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/c.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import "./common_2.css";
import "./common_3.css";
import "./common_1.css";
console.log("c");
3 changes: 3 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/common_1.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body::after {
content: "common_1";
}
3 changes: 3 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/common_2.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body::after {
content: "common_2";
}
3 changes: 3 additions & 0 deletions e2e/fixtures/css.css-merge-multi-entries/src/common_3.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body::after {
content: "common_3";
}

0 comments on commit c731eff

Please sign in to comment.