Skip to content

Commit ad3729b

Browse files
fix: module identifier, don't merge modules with different media/suppors/layer (#1021)
1 parent e0ca181 commit ad3729b

File tree

16 files changed

+142
-1
lines changed

16 files changed

+142
-1
lines changed

Diff for: src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ class MiniCssExtractPlugin {
165165
}
166166

167167
identifier() {
168-
return `css|${this._identifier}|${this._identifierIndex}`;
168+
return `css|${this._identifier}|${this._identifierIndex}|${this.layer}|${this.supports}|${this.media}}}`;
169169
}
170170

171171
/**

Diff for: test/cases/issue-css-loader-1503-1/dark.css

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
body {
2+
background: black;
3+
}

Diff for: test/cases/issue-css-loader-1503-1/expected/dark.css

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
body {
2+
background: black;
3+
}
4+
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@supports (display: flex) {
2+
body {
3+
background: black;
4+
}
5+
6+
}
7+
8+

Diff for: test/cases/issue-css-loader-1503-1/index.css

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import url("dark.css") supports(display: flex);

Diff for: test/cases/issue-css-loader-1503-1/webpack.config.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import Self from "../../../src";
2+
3+
module.exports = {
4+
entry: {
5+
dark: "./dark.css",
6+
index: "./index.css",
7+
},
8+
module: {
9+
rules: [
10+
{
11+
test: /\.css$/,
12+
use: [
13+
{
14+
loader: Self.loader,
15+
},
16+
{
17+
loader: "css-loader",
18+
options: {
19+
modules: true,
20+
},
21+
},
22+
],
23+
},
24+
],
25+
},
26+
plugins: [
27+
new Self({
28+
filename: "[name].css",
29+
}),
30+
],
31+
};

Diff for: test/cases/issue-css-loader-1503-2/dark.css

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
body {
2+
background: black;
3+
}

Diff for: test/cases/issue-css-loader-1503-2/expected/dark.css

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
body {
2+
background: black;
3+
}
4+
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@layer framework.component {
2+
body {
3+
background: black;
4+
}
5+
6+
}
7+
8+

Diff for: test/cases/issue-css-loader-1503-2/index.css

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import url("dark.css") layer(framework.component);

Diff for: test/cases/issue-css-loader-1503-2/webpack.config.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import Self from "../../../src";
2+
3+
module.exports = {
4+
entry: {
5+
dark: "./dark.css",
6+
index: "./index.css",
7+
},
8+
module: {
9+
rules: [
10+
{
11+
test: /\.css$/,
12+
use: [
13+
{
14+
loader: Self.loader,
15+
},
16+
{
17+
loader: "css-loader",
18+
options: {
19+
modules: true,
20+
},
21+
},
22+
],
23+
},
24+
],
25+
},
26+
plugins: [
27+
new Self({
28+
filename: "[name].css",
29+
}),
30+
],
31+
};

Diff for: test/cases/issue-css-loader-1503/dark.css

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
body {
2+
background: black;
3+
}

Diff for: test/cases/issue-css-loader-1503/expected/dark.css

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
body {
2+
background: black;
3+
}
4+

Diff for: test/cases/issue-css-loader-1503/expected/index.css

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@media (prefers-color-scheme: dark) {
2+
body {
3+
background: black;
4+
}
5+
6+
}
7+
8+

Diff for: test/cases/issue-css-loader-1503/index.css

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import "./dark.css" (prefers-color-scheme: dark);

Diff for: test/cases/issue-css-loader-1503/webpack.config.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import Self from "../../../src";
2+
3+
module.exports = {
4+
entry: {
5+
dark: "./dark.css",
6+
index: "./index.css",
7+
},
8+
module: {
9+
rules: [
10+
{
11+
test: /\.css$/,
12+
use: [
13+
{
14+
loader: Self.loader,
15+
},
16+
{
17+
loader: "css-loader",
18+
options: {
19+
modules: true,
20+
},
21+
},
22+
],
23+
},
24+
],
25+
},
26+
plugins: [
27+
new Self({
28+
filename: "[name].css",
29+
}),
30+
],
31+
};

0 commit comments

Comments
 (0)