webpack 5.102.1 → 5.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -134
- package/hot/dev-server.js +18 -3
- package/hot/emitter-event-target.js +7 -0
- package/hot/lazy-compilation-node.js +45 -29
- package/hot/lazy-compilation-universal.js +18 -0
- package/hot/lazy-compilation-web.js +15 -5
- package/hot/load-http.js +7 -0
- package/hot/only-dev-server.js +19 -4
- package/lib/APIPlugin.js +6 -0
- package/lib/Chunk.js +1 -1
- package/lib/ChunkGraph.js +9 -7
- package/lib/ChunkGroup.js +8 -5
- package/lib/CleanPlugin.js +6 -3
- package/lib/CodeGenerationResults.js +2 -1
- package/lib/CompatibilityPlugin.js +28 -2
- package/lib/Compilation.js +58 -21
- package/lib/Compiler.js +3 -3
- package/lib/ConcatenationScope.js +0 -15
- package/lib/ContextModule.js +6 -3
- package/lib/ContextModuleFactory.js +6 -4
- package/lib/CssModule.js +6 -1
- package/lib/DefinePlugin.js +45 -14
- package/lib/DelegatedModule.js +7 -4
- package/lib/Dependency.js +8 -1
- package/lib/DependencyTemplate.js +1 -0
- package/lib/DllModule.js +6 -3
- package/lib/DotenvPlugin.js +462 -0
- package/lib/EnvironmentPlugin.js +19 -16
- package/lib/EvalSourceMapDevToolPlugin.js +16 -0
- package/lib/ExportsInfo.js +6 -2
- package/lib/ExternalModule.js +28 -35
- package/lib/ExternalModuleFactoryPlugin.js +11 -9
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +1 -1
- package/lib/Generator.js +10 -7
- package/lib/HookWebpackError.js +33 -4
- package/lib/HotModuleReplacementPlugin.js +22 -0
- package/lib/ManifestPlugin.js +235 -0
- package/lib/Module.js +27 -15
- package/lib/ModuleBuildError.js +1 -1
- package/lib/ModuleError.js +1 -1
- package/lib/ModuleFilenameHelpers.js +1 -1
- package/lib/ModuleGraph.js +29 -13
- package/lib/ModuleGraphConnection.js +2 -2
- package/lib/ModuleSourceTypeConstants.js +189 -0
- package/lib/ModuleTypeConstants.js +1 -4
- package/lib/ModuleWarning.js +1 -1
- package/lib/MultiCompiler.js +1 -1
- package/lib/NodeStuffPlugin.js +424 -116
- package/lib/NormalModule.js +23 -20
- package/lib/NormalModuleFactory.js +7 -10
- package/lib/Parser.js +1 -1
- package/lib/RawModule.js +7 -4
- package/lib/RuntimeGlobals.js +22 -4
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +27 -6
- package/lib/RuntimeTemplate.js +120 -57
- package/lib/SourceMapDevToolPlugin.js +26 -1
- package/lib/Template.js +17 -6
- package/lib/TemplatedPathPlugin.js +5 -6
- package/lib/WebpackError.js +0 -1
- package/lib/WebpackOptionsApply.js +67 -15
- package/lib/asset/AssetBytesGenerator.js +16 -12
- package/lib/asset/AssetGenerator.js +31 -26
- package/lib/asset/AssetSourceGenerator.js +16 -12
- package/lib/asset/RawDataUrlModule.js +6 -3
- package/lib/buildChunkGraph.js +4 -2
- package/lib/cache/PackFileCacheStrategy.js +6 -5
- package/lib/cli.js +2 -43
- package/lib/config/browserslistTargetHandler.js +24 -0
- package/lib/config/defaults.js +226 -61
- package/lib/config/normalization.js +4 -3
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryModule.js +6 -3
- package/lib/container/FallbackModule.js +6 -3
- package/lib/container/RemoteModule.js +1 -3
- package/lib/css/CssGenerator.js +304 -76
- package/lib/css/CssLoadingRuntimeModule.js +14 -4
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
- package/lib/css/CssModulesPlugin.js +72 -67
- package/lib/css/CssParser.js +1726 -732
- package/lib/css/walkCssTokens.js +128 -11
- package/lib/dependencies/CachedConstDependency.js +24 -10
- package/lib/dependencies/CommonJsImportsParserPlugin.js +0 -9
- package/lib/dependencies/CommonJsPlugin.js +12 -0
- package/lib/dependencies/CommonJsRequireContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +2 -2
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +389 -12
- package/lib/dependencies/CssIcssImportDependency.js +114 -51
- package/lib/dependencies/CssIcssSymbolDependency.js +31 -33
- package/lib/dependencies/CssImportDependency.js +17 -6
- package/lib/dependencies/CssUrlDependency.js +3 -2
- package/lib/dependencies/DynamicExports.js +7 -7
- package/lib/dependencies/ExternalModuleDependency.js +7 -4
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -1
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +12 -1
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +35 -23
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +13 -9
- package/lib/dependencies/HarmonyExports.js +4 -4
- package/lib/dependencies/HarmonyImportDependency.js +28 -27
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +28 -69
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -3
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +10 -8
- package/lib/dependencies/ImportDependency.js +8 -2
- package/lib/dependencies/ImportEagerDependency.js +6 -3
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -9
- package/lib/dependencies/ImportParserPlugin.js +21 -23
- package/lib/dependencies/ImportPhase.js +121 -0
- package/lib/dependencies/ImportWeakDependency.js +6 -3
- package/lib/dependencies/LocalModulesHelpers.js +3 -3
- package/lib/dependencies/ModuleDependency.js +5 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/WorkerPlugin.js +2 -2
- package/lib/dependencies/getFunctionExpression.js +1 -1
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -8
- package/lib/esm/ModuleChunkFormatPlugin.js +5 -4
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -1
- package/lib/hmr/LazyCompilationPlugin.js +5 -3
- package/lib/ids/IdHelpers.js +20 -8
- package/lib/index.js +6 -0
- package/lib/javascript/ChunkHelpers.js +16 -5
- package/lib/javascript/JavascriptGenerator.js +105 -104
- package/lib/javascript/JavascriptModulesPlugin.js +80 -37
- package/lib/javascript/JavascriptParser.js +161 -44
- package/lib/json/JsonGenerator.js +5 -4
- package/lib/json/JsonParser.js +9 -2
- package/lib/library/AbstractLibraryPlugin.js +1 -1
- package/lib/library/AmdLibraryPlugin.js +4 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
- package/lib/library/ModuleLibraryPlugin.js +41 -23
- package/lib/library/SystemLibraryPlugin.js +8 -1
- package/lib/library/UmdLibraryPlugin.js +2 -2
- package/lib/logging/Logger.js +5 -4
- package/lib/logging/createConsoleLogger.js +2 -2
- package/lib/node/NodeTargetPlugin.js +9 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +0 -2
- package/lib/optimize/ConcatenatedModule.js +208 -167
- package/lib/optimize/ModuleConcatenationPlugin.js +5 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +3 -2
- package/lib/optimize/SplitChunksPlugin.js +60 -46
- package/lib/rules/RuleSetCompiler.js +1 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +28 -18
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +3 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +89 -55
- package/lib/schemes/HttpUriPlugin.js +78 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -2
- package/lib/serialization/ObjectMiddleware.js +0 -2
- package/lib/serialization/SingleItemMiddleware.js +1 -1
- package/lib/sharing/ConsumeSharedModule.js +1 -1
- package/lib/sharing/ConsumeSharedPlugin.js +5 -3
- package/lib/sharing/ProvideSharedModule.js +1 -1
- package/lib/sharing/resolveMatchedConfigs.js +15 -9
- package/lib/sharing/utils.js +1 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +8 -5
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +1 -1
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +2 -2
- package/lib/util/binarySearchBounds.js +2 -2
- package/lib/util/comparators.js +54 -76
- package/lib/util/compileBooleanMatcher.js +78 -6
- package/lib/util/createHash.js +20 -199
- package/lib/util/deprecation.js +1 -1
- package/lib/util/deterministicGrouping.js +6 -3
- package/lib/util/fs.js +75 -75
- package/lib/util/hash/BatchedHash.js +10 -9
- package/lib/util/hash/BulkUpdateHash.js +138 -0
- package/lib/util/hash/DebugHash.js +75 -0
- package/lib/util/hash/hash-digest.js +216 -0
- package/lib/util/identifier.js +82 -17
- package/lib/util/internalSerializables.js +2 -6
- package/lib/util/runtime.js +3 -3
- package/lib/util/source.js +2 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -4
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +3 -2
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +11 -7
- package/lib/wasm-sync/WebAssemblyGenerator.js +9 -6
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +11 -6
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +6 -2
- package/lib/web/FetchCompileWasmPlugin.js +0 -2
- package/lib/webpack.js +85 -82
- package/module.d.ts +5 -0
- package/package.json +34 -28
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +160 -101
- package/schemas/plugins/{css/CssAutoParserOptions.check.d.ts → ManifestPlugin.check.d.ts} +1 -1
- package/schemas/plugins/ManifestPlugin.check.js +6 -0
- package/schemas/plugins/ManifestPlugin.json +98 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +16 -3
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -1
- package/types.d.ts +771 -436
- package/lib/ModuleSourceTypesConstants.js +0 -123
- package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -112
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
- package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
- package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
- package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
|
@@ -17,6 +17,7 @@ const Compilation = require("../Compilation");
|
|
|
17
17
|
const CssModule = require("../CssModule");
|
|
18
18
|
const { tryRunOrWebpackError } = require("../HookWebpackError");
|
|
19
19
|
const HotUpdateChunk = require("../HotUpdateChunk");
|
|
20
|
+
const { CSS_IMPORT_TYPE, CSS_TYPE } = require("../ModuleSourceTypeConstants");
|
|
20
21
|
const {
|
|
21
22
|
CSS_MODULE_TYPE,
|
|
22
23
|
CSS_MODULE_TYPE_AUTO,
|
|
@@ -25,15 +26,12 @@ const {
|
|
|
25
26
|
} = require("../ModuleTypeConstants");
|
|
26
27
|
const NormalModule = require("../NormalModule");
|
|
27
28
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
28
|
-
const SelfModuleFactory = require("../SelfModuleFactory");
|
|
29
29
|
const Template = require("../Template");
|
|
30
30
|
const WebpackError = require("../WebpackError");
|
|
31
31
|
const CssIcssExportDependency = require("../dependencies/CssIcssExportDependency");
|
|
32
32
|
const CssIcssImportDependency = require("../dependencies/CssIcssImportDependency");
|
|
33
33
|
const CssIcssSymbolDependency = require("../dependencies/CssIcssSymbolDependency");
|
|
34
34
|
const CssImportDependency = require("../dependencies/CssImportDependency");
|
|
35
|
-
const CssLocalIdentifierDependency = require("../dependencies/CssLocalIdentifierDependency");
|
|
36
|
-
const CssSelfLocalIdentifierDependency = require("../dependencies/CssSelfLocalIdentifierDependency");
|
|
37
35
|
const CssUrlDependency = require("../dependencies/CssUrlDependency");
|
|
38
36
|
const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
|
|
39
37
|
const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
|
|
@@ -45,6 +43,7 @@ const memoize = require("../util/memoize");
|
|
|
45
43
|
const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
|
|
46
44
|
const removeBOM = require("../util/removeBOM");
|
|
47
45
|
const CssGenerator = require("./CssGenerator");
|
|
46
|
+
const CssMergeStyleSheetsRuntimeModule = require("./CssMergeStyleSheetsRuntimeModule");
|
|
48
47
|
const CssParser = require("./CssParser");
|
|
49
48
|
|
|
50
49
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
@@ -62,6 +61,7 @@ const CssParser = require("./CssParser");
|
|
|
62
61
|
/** @typedef {import("../Template").RuntimeTemplate} RuntimeTemplate */
|
|
63
62
|
/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */
|
|
64
63
|
/** @typedef {import("../util/Hash")} Hash */
|
|
64
|
+
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
67
|
* @typedef {object} RenderContext
|
|
@@ -76,11 +76,13 @@ const CssParser = require("./CssParser");
|
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* @typedef {object} ChunkRenderContext
|
|
79
|
-
* @property {Chunk} chunk the chunk
|
|
80
|
-
* @property {ChunkGraph} chunkGraph the chunk graph
|
|
81
|
-
* @property {CodeGenerationResults} codeGenerationResults results of code generation
|
|
79
|
+
* @property {Chunk=} chunk the chunk
|
|
80
|
+
* @property {ChunkGraph=} chunkGraph the chunk graph
|
|
81
|
+
* @property {CodeGenerationResults=} codeGenerationResults results of code generation
|
|
82
82
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
|
83
83
|
* @property {string} undoPath undo path to css file
|
|
84
|
+
* @property {WeakMap<Source, ModuleFactoryCacheEntry>} moduleFactoryCache moduleFactoryCache
|
|
85
|
+
* @property {Source} moduleSourceContent content
|
|
84
86
|
*/
|
|
85
87
|
|
|
86
88
|
/**
|
|
@@ -89,6 +91,13 @@ const CssParser = require("./CssParser");
|
|
|
89
91
|
* @property {SyncHook<[Chunk, Hash, ChunkHashContext]>} chunkHash
|
|
90
92
|
*/
|
|
91
93
|
|
|
94
|
+
/**
|
|
95
|
+
* @typedef {object} ModuleFactoryCacheEntry
|
|
96
|
+
* @property {string} undoPath - The undo path to the CSS file
|
|
97
|
+
* @property {Inheritance} inheritance - The inheritance chain
|
|
98
|
+
* @property {CachedSource} source - The cached source
|
|
99
|
+
*/
|
|
100
|
+
|
|
92
101
|
const getCssLoadingRuntimeModule = memoize(() =>
|
|
93
102
|
require("./CssLoadingRuntimeModule")
|
|
94
103
|
);
|
|
@@ -117,8 +126,8 @@ const validateGeneratorOptions = {
|
|
|
117
126
|
generatorValidationOptions
|
|
118
127
|
),
|
|
119
128
|
"css/auto": createSchemaValidation(
|
|
120
|
-
require("../../schemas/plugins/css/
|
|
121
|
-
() => getSchema("
|
|
129
|
+
require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
|
|
130
|
+
() => getSchema("CssModuleGeneratorOptions"),
|
|
122
131
|
generatorValidationOptions
|
|
123
132
|
),
|
|
124
133
|
"css/module": createSchemaValidation(
|
|
@@ -127,8 +136,8 @@ const validateGeneratorOptions = {
|
|
|
127
136
|
generatorValidationOptions
|
|
128
137
|
),
|
|
129
138
|
"css/global": createSchemaValidation(
|
|
130
|
-
require("../../schemas/plugins/css/
|
|
131
|
-
() => getSchema("
|
|
139
|
+
require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
|
|
140
|
+
() => getSchema("CssModuleGeneratorOptions"),
|
|
132
141
|
generatorValidationOptions
|
|
133
142
|
)
|
|
134
143
|
};
|
|
@@ -144,8 +153,8 @@ const validateParserOptions = {
|
|
|
144
153
|
parserValidationOptions
|
|
145
154
|
),
|
|
146
155
|
"css/auto": createSchemaValidation(
|
|
147
|
-
require("../../schemas/plugins/css/
|
|
148
|
-
() => getSchema("
|
|
156
|
+
require("../../schemas/plugins/css/CssModuleParserOptions.check"),
|
|
157
|
+
() => getSchema("CssModuleParserOptions"),
|
|
149
158
|
parserValidationOptions
|
|
150
159
|
),
|
|
151
160
|
"css/module": createSchemaValidation(
|
|
@@ -154,8 +163,8 @@ const validateParserOptions = {
|
|
|
154
163
|
parserValidationOptions
|
|
155
164
|
),
|
|
156
165
|
"css/global": createSchemaValidation(
|
|
157
|
-
require("../../schemas/plugins/css/
|
|
158
|
-
() => getSchema("
|
|
166
|
+
require("../../schemas/plugins/css/CssModuleParserOptions.check"),
|
|
167
|
+
() => getSchema("CssModuleParserOptions"),
|
|
159
168
|
parserValidationOptions
|
|
160
169
|
)
|
|
161
170
|
};
|
|
@@ -192,7 +201,7 @@ class CssModulesPlugin {
|
|
|
192
201
|
}
|
|
193
202
|
|
|
194
203
|
constructor() {
|
|
195
|
-
/** @type {WeakMap<Source,
|
|
204
|
+
/** @type {WeakMap<Source, ModuleFactoryCacheEntry>} */
|
|
196
205
|
this._moduleFactoryCache = new WeakMap();
|
|
197
206
|
}
|
|
198
207
|
|
|
@@ -206,7 +215,6 @@ class CssModulesPlugin {
|
|
|
206
215
|
PLUGIN_NAME,
|
|
207
216
|
(compilation, { normalModuleFactory }) => {
|
|
208
217
|
const hooks = CssModulesPlugin.getCompilationHooks(compilation);
|
|
209
|
-
const selfFactory = new SelfModuleFactory(compilation.moduleGraph);
|
|
210
218
|
compilation.dependencyFactories.set(
|
|
211
219
|
CssImportDependency,
|
|
212
220
|
normalModuleFactory
|
|
@@ -223,18 +231,6 @@ class CssModulesPlugin {
|
|
|
223
231
|
CssUrlDependency,
|
|
224
232
|
new CssUrlDependency.Template()
|
|
225
233
|
);
|
|
226
|
-
compilation.dependencyTemplates.set(
|
|
227
|
-
CssLocalIdentifierDependency,
|
|
228
|
-
new CssLocalIdentifierDependency.Template()
|
|
229
|
-
);
|
|
230
|
-
compilation.dependencyFactories.set(
|
|
231
|
-
CssSelfLocalIdentifierDependency,
|
|
232
|
-
selfFactory
|
|
233
|
-
);
|
|
234
|
-
compilation.dependencyTemplates.set(
|
|
235
|
-
CssSelfLocalIdentifierDependency,
|
|
236
|
-
new CssSelfLocalIdentifierDependency.Template()
|
|
237
|
-
);
|
|
238
234
|
compilation.dependencyFactories.set(
|
|
239
235
|
CssIcssImportDependency,
|
|
240
236
|
normalModuleFactory
|
|
@@ -264,36 +260,31 @@ class CssModulesPlugin {
|
|
|
264
260
|
normalModuleFactory.hooks.createParser
|
|
265
261
|
.for(type)
|
|
266
262
|
.tap(PLUGIN_NAME, (parserOptions) => {
|
|
267
|
-
validateParserOptions[type](parserOptions);
|
|
268
|
-
const { url, import: importOption, namedExports } = parserOptions;
|
|
269
|
-
|
|
270
263
|
switch (type) {
|
|
271
264
|
case CSS_MODULE_TYPE:
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
namedExports
|
|
276
|
-
});
|
|
265
|
+
validateParserOptions[type](parserOptions);
|
|
266
|
+
|
|
267
|
+
return new CssParser(parserOptions);
|
|
277
268
|
case CSS_MODULE_TYPE_GLOBAL:
|
|
269
|
+
validateParserOptions[type](parserOptions);
|
|
270
|
+
|
|
278
271
|
return new CssParser({
|
|
279
272
|
defaultMode: "global",
|
|
280
|
-
|
|
281
|
-
url,
|
|
282
|
-
namedExports
|
|
273
|
+
...parserOptions
|
|
283
274
|
});
|
|
284
275
|
case CSS_MODULE_TYPE_MODULE:
|
|
276
|
+
validateParserOptions[type](parserOptions);
|
|
277
|
+
|
|
285
278
|
return new CssParser({
|
|
286
279
|
defaultMode: "local",
|
|
287
|
-
|
|
288
|
-
url,
|
|
289
|
-
namedExports
|
|
280
|
+
...parserOptions
|
|
290
281
|
});
|
|
291
282
|
case CSS_MODULE_TYPE_AUTO:
|
|
283
|
+
validateParserOptions[type](parserOptions);
|
|
284
|
+
|
|
292
285
|
return new CssParser({
|
|
293
286
|
defaultMode: "auto",
|
|
294
|
-
|
|
295
|
-
url,
|
|
296
|
-
namedExports
|
|
287
|
+
...parserOptions
|
|
297
288
|
});
|
|
298
289
|
}
|
|
299
290
|
});
|
|
@@ -545,8 +536,6 @@ class CssModulesPlugin {
|
|
|
545
536
|
onceForChunkSet.add(chunk);
|
|
546
537
|
if (!isEnabledForChunk(chunk)) return;
|
|
547
538
|
|
|
548
|
-
set.add(RuntimeGlobals.makeNamespaceObject);
|
|
549
|
-
|
|
550
539
|
const CssLoadingRuntimeModule = getCssLoadingRuntimeModule();
|
|
551
540
|
compilation.addRuntimeModule(chunk, new CssLoadingRuntimeModule(set));
|
|
552
541
|
};
|
|
@@ -593,6 +582,15 @@ class CssModulesPlugin {
|
|
|
593
582
|
set.add(RuntimeGlobals.publicPath);
|
|
594
583
|
set.add(RuntimeGlobals.getChunkCssFilename);
|
|
595
584
|
});
|
|
585
|
+
|
|
586
|
+
compilation.hooks.runtimeRequirementInTree
|
|
587
|
+
.for(RuntimeGlobals.cssMergeStyleSheets)
|
|
588
|
+
.tap(PLUGIN_NAME, (chunk) => {
|
|
589
|
+
compilation.addRuntimeModule(
|
|
590
|
+
chunk,
|
|
591
|
+
new CssMergeStyleSheetsRuntimeModule()
|
|
592
|
+
);
|
|
593
|
+
});
|
|
596
594
|
}
|
|
597
595
|
);
|
|
598
596
|
}
|
|
@@ -733,7 +731,7 @@ class CssModulesPlugin {
|
|
|
733
731
|
(
|
|
734
732
|
chunkGraph.getOrderedChunkModulesIterableBySourceType(
|
|
735
733
|
chunk,
|
|
736
|
-
|
|
734
|
+
CSS_IMPORT_TYPE,
|
|
737
735
|
compareModulesByIdOrIdentifier(chunkGraph)
|
|
738
736
|
)
|
|
739
737
|
),
|
|
@@ -745,7 +743,7 @@ class CssModulesPlugin {
|
|
|
745
743
|
(
|
|
746
744
|
chunkGraph.getOrderedChunkModulesIterableBySourceType(
|
|
747
745
|
chunk,
|
|
748
|
-
|
|
746
|
+
CSS_TYPE,
|
|
749
747
|
compareModulesByIdOrIdentifier(chunkGraph)
|
|
750
748
|
)
|
|
751
749
|
),
|
|
@@ -758,18 +756,11 @@ class CssModulesPlugin {
|
|
|
758
756
|
* @param {CssModule} module css module
|
|
759
757
|
* @param {ChunkRenderContext} renderContext options object
|
|
760
758
|
* @param {CompilationHooks} hooks hooks
|
|
761
|
-
* @returns {Source} css module source
|
|
759
|
+
* @returns {Source | null} css module source
|
|
762
760
|
*/
|
|
763
|
-
renderModule(module, renderContext, hooks) {
|
|
764
|
-
const {
|
|
765
|
-
const
|
|
766
|
-
const moduleSourceContent =
|
|
767
|
-
/** @type {Source} */
|
|
768
|
-
(
|
|
769
|
-
codeGenResult.sources.get("css") ||
|
|
770
|
-
codeGenResult.sources.get("css-import")
|
|
771
|
-
);
|
|
772
|
-
const cacheEntry = this._moduleFactoryCache.get(moduleSourceContent);
|
|
761
|
+
static renderModule(module, renderContext, hooks) {
|
|
762
|
+
const { undoPath, moduleFactoryCache, moduleSourceContent } = renderContext;
|
|
763
|
+
const cacheEntry = moduleFactoryCache.get(moduleSourceContent);
|
|
773
764
|
|
|
774
765
|
/** @type {Inheritance} */
|
|
775
766
|
const inheritance = [[module.cssLayer, module.supports, module.media]];
|
|
@@ -791,6 +782,7 @@ class CssModulesPlugin {
|
|
|
791
782
|
) {
|
|
792
783
|
source = cacheEntry.source;
|
|
793
784
|
} else {
|
|
785
|
+
if (!moduleSourceContent) return null;
|
|
794
786
|
const moduleSourceCode =
|
|
795
787
|
/** @type {string} */
|
|
796
788
|
(moduleSourceContent.source());
|
|
@@ -845,7 +837,7 @@ class CssModulesPlugin {
|
|
|
845
837
|
}
|
|
846
838
|
|
|
847
839
|
source = new CachedSource(moduleSource);
|
|
848
|
-
|
|
840
|
+
moduleFactoryCache.set(moduleSourceContent, {
|
|
849
841
|
inheritance,
|
|
850
842
|
undoPath,
|
|
851
843
|
source
|
|
@@ -867,28 +859,39 @@ class CssModulesPlugin {
|
|
|
867
859
|
{
|
|
868
860
|
undoPath,
|
|
869
861
|
chunk,
|
|
870
|
-
chunkGraph,
|
|
871
862
|
codeGenerationResults,
|
|
872
863
|
modules,
|
|
873
|
-
runtimeTemplate
|
|
864
|
+
runtimeTemplate,
|
|
865
|
+
chunkGraph
|
|
874
866
|
},
|
|
875
867
|
hooks
|
|
876
868
|
) {
|
|
877
869
|
const source = new ConcatSource();
|
|
878
870
|
for (const module of modules) {
|
|
879
871
|
try {
|
|
880
|
-
const
|
|
872
|
+
const codeGenResult = codeGenerationResults.get(module, chunk.runtime);
|
|
873
|
+
const moduleSourceContent =
|
|
874
|
+
/** @type {Source} */
|
|
875
|
+
(
|
|
876
|
+
codeGenResult.sources.get(CSS_TYPE) ||
|
|
877
|
+
codeGenResult.sources.get(CSS_IMPORT_TYPE)
|
|
878
|
+
);
|
|
879
|
+
const moduleSource = CssModulesPlugin.renderModule(
|
|
881
880
|
module,
|
|
882
881
|
{
|
|
883
882
|
undoPath,
|
|
884
883
|
chunk,
|
|
885
884
|
chunkGraph,
|
|
886
885
|
codeGenerationResults,
|
|
886
|
+
moduleSourceContent,
|
|
887
|
+
moduleFactoryCache: this._moduleFactoryCache,
|
|
887
888
|
runtimeTemplate
|
|
888
889
|
},
|
|
889
890
|
hooks
|
|
890
891
|
);
|
|
891
|
-
|
|
892
|
+
if (moduleSource) {
|
|
893
|
+
source.add(moduleSource);
|
|
894
|
+
}
|
|
892
895
|
} catch (err) {
|
|
893
896
|
/** @type {Error} */
|
|
894
897
|
(err).message += `\nduring rendering of css ${module.identifier()}`;
|
|
@@ -920,9 +923,11 @@ class CssModulesPlugin {
|
|
|
920
923
|
*/
|
|
921
924
|
static chunkHasCss(chunk, chunkGraph) {
|
|
922
925
|
return (
|
|
923
|
-
Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, "css")) ||
|
|
924
926
|
Boolean(
|
|
925
|
-
chunkGraph.getChunkModulesIterableBySourceType(chunk,
|
|
927
|
+
chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_TYPE)
|
|
928
|
+
) ||
|
|
929
|
+
Boolean(
|
|
930
|
+
chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_IMPORT_TYPE)
|
|
926
931
|
)
|
|
927
932
|
);
|
|
928
933
|
}
|