Skip to content

Commit 1c22eb9

Browse files
refactor: improve concatenate CSS modules (#20200)
1 parent 366d6cd commit 1c22eb9

File tree

26 files changed

+1894
-2098
lines changed

26 files changed

+1894
-2098
lines changed

lib/css/CssGenerator.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,9 @@ class CssGenerator extends Generator {
470470
const sourceTypes = new Set();
471471
const connections = this._moduleGraph.getIncomingConnections(module);
472472
for (const connection of connections) {
473+
if (connection.dependency instanceof CssImportDependency) {
474+
continue;
475+
}
473476
if (!connection.originModule) {
474477
continue;
475478
}

lib/dependencies/CssImportDependency.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const ModuleDependency = require("./ModuleDependency");
1010

1111
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
1212
/** @typedef {import("../Dependency")} Dependency */
13-
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
13+
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
1414
/** @typedef {import("../css/CssParser").Range} Range */
1515
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
1616
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
@@ -105,6 +105,7 @@ CssImportDependency.Template = class CssImportDependencyTemplate extends (
105105
* @returns {void}
106106
*/
107107
apply(dependency, source, templateContext) {
108+
if (templateContext.type === "javascript") return;
108109
const dep = /** @type {CssImportDependency} */ (dependency);
109110

110111
source.replace(dep.range[0], dep.range[1] - 1, "");

lib/dependencies/CssUrlDependency.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const ModuleDependency = require("./ModuleDependency");
1313
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
1414
/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
1515
/** @typedef {import("../Dependency")} Dependency */
16-
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
16+
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
1717
/** @typedef {import("../Module")} Module */
1818
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
1919
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
@@ -118,8 +118,9 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
118118
apply(
119119
dependency,
120120
source,
121-
{ moduleGraph, runtimeTemplate, codeGenerationResults }
121+
{ type, moduleGraph, runtimeTemplate, codeGenerationResults }
122122
) {
123+
if (type === "javascript") return;
123124
const dep = /** @type {CssUrlDependency} */ (dependency);
124125
const module = /** @type {Module} */ (moduleGraph.getModule(dep));
125126

lib/dependencies/HarmonyImportDependency.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const InitFragment = require("../InitFragment");
1212
const Template = require("../Template");
1313
const AwaitDependenciesInitFragment = require("../async-modules/AwaitDependenciesInitFragment");
1414
const { filterRuntime, mergeRuntime } = require("../util/runtime");
15-
const { ImportPhaseUtils } = require("./ImportPhase");
15+
const { ImportPhase, ImportPhaseUtils } = require("./ImportPhase");
1616
const ModuleDependency = require("./ModuleDependency");
1717

1818
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
@@ -62,10 +62,15 @@ class HarmonyImportDependency extends ModuleDependency {
6262
/**
6363
* @param {string} request request string
6464
* @param {number} sourceOrder source order
65-
* @param {ImportPhaseType} phase import phase
65+
* @param {ImportPhaseType=} phase import phase
6666
* @param {ImportAttributes=} attributes import attributes
6767
*/
68-
constructor(request, sourceOrder, phase, attributes) {
68+
constructor(
69+
request,
70+
sourceOrder,
71+
phase = ImportPhase.Evaluation,
72+
attributes = undefined
73+
) {
6974
super(request, sourceOrder);
7075
this.phase = phase;
7176
this.attributes = attributes;

0 commit comments

Comments
 (0)