webpack 5.102.1 → 5.103.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/lib/CompatibilityPlugin.js +25 -2
- package/lib/Compilation.js +25 -2
- package/lib/ConcatenationScope.js +0 -15
- package/lib/CssModule.js +6 -1
- package/lib/DefinePlugin.js +11 -11
- package/lib/Dependency.js +8 -1
- package/lib/DependencyTemplate.js +1 -0
- package/lib/DotenvPlugin.js +457 -0
- package/lib/EnvironmentPlugin.js +19 -16
- package/lib/EvalSourceMapDevToolPlugin.js +16 -0
- package/lib/ExportsInfo.js +6 -2
- package/lib/ExternalModule.js +20 -28
- package/lib/ExternalModuleFactoryPlugin.js +10 -8
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/ManifestPlugin.js +235 -0
- package/lib/Module.js +3 -0
- package/lib/ModuleGraph.js +2 -1
- package/lib/ModuleSourceTypesConstants.js +0 -6
- package/lib/MultiCompiler.js +1 -1
- package/lib/NodeStuffPlugin.js +419 -121
- package/lib/NormalModule.js +17 -16
- package/lib/RuntimeGlobals.js +22 -4
- package/lib/RuntimePlugin.js +27 -6
- package/lib/RuntimeTemplate.js +115 -56
- package/lib/SourceMapDevToolPlugin.js +20 -0
- package/lib/WebpackOptionsApply.js +33 -9
- package/lib/asset/AssetBytesGenerator.js +1 -1
- package/lib/asset/AssetGenerator.js +1 -2
- package/lib/asset/AssetSourceGenerator.js +1 -1
- package/lib/config/browserslistTargetHandler.js +5 -0
- package/lib/config/defaults.js +98 -18
- package/lib/config/normalization.js +2 -1
- package/lib/config/target.js +6 -0
- package/lib/css/CssGenerator.js +283 -57
- package/lib/css/CssLoadingRuntimeModule.js +2 -0
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
- package/lib/css/CssModulesPlugin.js +84 -34
- package/lib/css/CssParser.js +1174 -667
- package/lib/css/walkCssTokens.js +97 -0
- package/lib/dependencies/CommonJsImportsParserPlugin.js +0 -9
- package/lib/dependencies/CommonJsPlugin.js +12 -0
- package/lib/dependencies/CssIcssExportDependency.js +247 -8
- package/lib/dependencies/CssIcssFromIdentifierDependency.js +124 -0
- package/lib/dependencies/CssIcssGlobalIdentifierDependency.js +48 -0
- package/lib/dependencies/CssIcssImportDependency.js +60 -54
- package/lib/dependencies/CssIcssLocalIdentifierDependency.js +61 -0
- package/lib/dependencies/{CssSelfLocalIdentifierDependency.js → CssIcssSelfLocalIdentifierDependency.js} +88 -10
- package/lib/dependencies/CssIcssSymbolDependency.js +31 -29
- package/lib/dependencies/CssImportDependency.js +15 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +1 -1
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +95 -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 +32 -21
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +12 -8
- package/lib/dependencies/HarmonyImportDependency.js +23 -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/ImportMetaPlugin.js +97 -9
- package/lib/dependencies/ImportParserPlugin.js +19 -21
- package/lib/dependencies/ImportPhase.js +121 -0
- package/lib/dependencies/ImportWeakDependency.js +6 -3
- package/lib/dependencies/ModuleDependency.js +5 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -8
- package/lib/hmr/LazyCompilationPlugin.js +1 -0
- package/lib/ids/IdHelpers.js +4 -1
- package/lib/index.js +6 -0
- package/lib/javascript/ChunkHelpers.js +16 -5
- package/lib/javascript/JavascriptGenerator.js +101 -101
- package/lib/javascript/JavascriptModulesPlugin.js +23 -13
- package/lib/javascript/JavascriptParser.js +142 -38
- package/lib/json/JsonParser.js +7 -1
- package/lib/library/ModuleLibraryPlugin.js +0 -10
- package/lib/library/SystemLibraryPlugin.js +4 -0
- package/lib/library/UmdLibraryPlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +9 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +0 -2
- package/lib/optimize/ConcatenatedModule.js +161 -135
- package/lib/runtime/AsyncModuleRuntimeModule.js +28 -18
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +89 -55
- package/lib/util/comparators.js +4 -3
- package/lib/util/internalSerializables.js +4 -4
- package/lib/util/jsonParseEvenBetterErrors.js +10 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -4
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +8 -5
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +8 -4
- package/lib/web/FetchCompileWasmPlugin.js +0 -2
- package/lib/webpack.js +85 -82
- package/module.d.ts +5 -0
- package/package.json +16 -14
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +109 -27
- package/schemas/plugins/ManifestPlugin.check.d.ts +7 -0
- 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/CssAutoParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +1 -1
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +1 -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 +560 -293
- package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
|
@@ -29,11 +29,13 @@ const SelfModuleFactory = require("../SelfModuleFactory");
|
|
|
29
29
|
const Template = require("../Template");
|
|
30
30
|
const WebpackError = require("../WebpackError");
|
|
31
31
|
const CssIcssExportDependency = require("../dependencies/CssIcssExportDependency");
|
|
32
|
+
const CssIcssFromIdentifierDependency = require("../dependencies/CssIcssFromIdentifierDependency");
|
|
33
|
+
const CssIcssGlobalIdentifierDependency = require("../dependencies/CssIcssGlobalIdentifierDependency");
|
|
32
34
|
const CssIcssImportDependency = require("../dependencies/CssIcssImportDependency");
|
|
35
|
+
const CssIcssLocalIdentifierDependency = require("../dependencies/CssIcssLocalIdentifierDependency");
|
|
36
|
+
const CssIcssSelfLocalIdentifierDependency = require("../dependencies/CssIcssSelfLocalIdentifierDependency");
|
|
33
37
|
const CssIcssSymbolDependency = require("../dependencies/CssIcssSymbolDependency");
|
|
34
38
|
const CssImportDependency = require("../dependencies/CssImportDependency");
|
|
35
|
-
const CssLocalIdentifierDependency = require("../dependencies/CssLocalIdentifierDependency");
|
|
36
|
-
const CssSelfLocalIdentifierDependency = require("../dependencies/CssSelfLocalIdentifierDependency");
|
|
37
39
|
const CssUrlDependency = require("../dependencies/CssUrlDependency");
|
|
38
40
|
const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
|
|
39
41
|
const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
|
|
@@ -45,6 +47,7 @@ const memoize = require("../util/memoize");
|
|
|
45
47
|
const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
|
|
46
48
|
const removeBOM = require("../util/removeBOM");
|
|
47
49
|
const CssGenerator = require("./CssGenerator");
|
|
50
|
+
const CssMergeStyleSheetsRuntimeModule = require("./CssMergeStyleSheetsRuntimeModule");
|
|
48
51
|
const CssParser = require("./CssParser");
|
|
49
52
|
|
|
50
53
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
@@ -62,6 +65,7 @@ const CssParser = require("./CssParser");
|
|
|
62
65
|
/** @typedef {import("../Template").RuntimeTemplate} RuntimeTemplate */
|
|
63
66
|
/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */
|
|
64
67
|
/** @typedef {import("../util/Hash")} Hash */
|
|
68
|
+
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
65
69
|
|
|
66
70
|
/**
|
|
67
71
|
* @typedef {object} RenderContext
|
|
@@ -76,11 +80,13 @@ const CssParser = require("./CssParser");
|
|
|
76
80
|
|
|
77
81
|
/**
|
|
78
82
|
* @typedef {object} ChunkRenderContext
|
|
79
|
-
* @property {Chunk} chunk the chunk
|
|
80
|
-
* @property {ChunkGraph} chunkGraph the chunk graph
|
|
81
|
-
* @property {CodeGenerationResults} codeGenerationResults results of code generation
|
|
83
|
+
* @property {Chunk=} chunk the chunk
|
|
84
|
+
* @property {ChunkGraph=} chunkGraph the chunk graph
|
|
85
|
+
* @property {CodeGenerationResults=} codeGenerationResults results of code generation
|
|
82
86
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
|
83
87
|
* @property {string} undoPath undo path to css file
|
|
88
|
+
* @property {WeakMap<Source, ModuleFactoryCacheEntry>} moduleFactoryCache moduleFactoryCache
|
|
89
|
+
* @property {Source} moduleSourceContent content
|
|
84
90
|
*/
|
|
85
91
|
|
|
86
92
|
/**
|
|
@@ -89,6 +95,13 @@ const CssParser = require("./CssParser");
|
|
|
89
95
|
* @property {SyncHook<[Chunk, Hash, ChunkHashContext]>} chunkHash
|
|
90
96
|
*/
|
|
91
97
|
|
|
98
|
+
/**
|
|
99
|
+
* @typedef {object} ModuleFactoryCacheEntry
|
|
100
|
+
* @property {string} undoPath - The undo path to the CSS file
|
|
101
|
+
* @property {Inheritance} inheritance - The inheritance chain
|
|
102
|
+
* @property {CachedSource} source - The cached source
|
|
103
|
+
*/
|
|
104
|
+
|
|
92
105
|
const getCssLoadingRuntimeModule = memoize(() =>
|
|
93
106
|
require("./CssLoadingRuntimeModule")
|
|
94
107
|
);
|
|
@@ -192,7 +205,7 @@ class CssModulesPlugin {
|
|
|
192
205
|
}
|
|
193
206
|
|
|
194
207
|
constructor() {
|
|
195
|
-
/** @type {WeakMap<Source,
|
|
208
|
+
/** @type {WeakMap<Source, ModuleFactoryCacheEntry>} */
|
|
196
209
|
this._moduleFactoryCache = new WeakMap();
|
|
197
210
|
}
|
|
198
211
|
|
|
@@ -224,16 +237,16 @@ class CssModulesPlugin {
|
|
|
224
237
|
new CssUrlDependency.Template()
|
|
225
238
|
);
|
|
226
239
|
compilation.dependencyTemplates.set(
|
|
227
|
-
|
|
228
|
-
new
|
|
240
|
+
CssIcssLocalIdentifierDependency,
|
|
241
|
+
new CssIcssLocalIdentifierDependency.Template()
|
|
229
242
|
);
|
|
230
243
|
compilation.dependencyFactories.set(
|
|
231
|
-
|
|
244
|
+
CssIcssSelfLocalIdentifierDependency,
|
|
232
245
|
selfFactory
|
|
233
246
|
);
|
|
234
247
|
compilation.dependencyTemplates.set(
|
|
235
|
-
|
|
236
|
-
new
|
|
248
|
+
CssIcssSelfLocalIdentifierDependency,
|
|
249
|
+
new CssIcssSelfLocalIdentifierDependency.Template()
|
|
237
250
|
);
|
|
238
251
|
compilation.dependencyFactories.set(
|
|
239
252
|
CssIcssImportDependency,
|
|
@@ -243,6 +256,22 @@ class CssModulesPlugin {
|
|
|
243
256
|
CssIcssImportDependency,
|
|
244
257
|
new CssIcssImportDependency.Template()
|
|
245
258
|
);
|
|
259
|
+
compilation.dependencyFactories.set(
|
|
260
|
+
CssIcssFromIdentifierDependency,
|
|
261
|
+
normalModuleFactory
|
|
262
|
+
);
|
|
263
|
+
compilation.dependencyTemplates.set(
|
|
264
|
+
CssIcssFromIdentifierDependency,
|
|
265
|
+
new CssIcssFromIdentifierDependency.Template()
|
|
266
|
+
);
|
|
267
|
+
compilation.dependencyFactories.set(
|
|
268
|
+
CssIcssGlobalIdentifierDependency,
|
|
269
|
+
normalModuleFactory
|
|
270
|
+
);
|
|
271
|
+
compilation.dependencyTemplates.set(
|
|
272
|
+
CssIcssGlobalIdentifierDependency,
|
|
273
|
+
new CssIcssGlobalIdentifierDependency.Template()
|
|
274
|
+
);
|
|
246
275
|
compilation.dependencyTemplates.set(
|
|
247
276
|
CssIcssExportDependency,
|
|
248
277
|
new CssIcssExportDependency.Template()
|
|
@@ -265,35 +294,44 @@ class CssModulesPlugin {
|
|
|
265
294
|
.for(type)
|
|
266
295
|
.tap(PLUGIN_NAME, (parserOptions) => {
|
|
267
296
|
validateParserOptions[type](parserOptions);
|
|
268
|
-
const {
|
|
297
|
+
const {
|
|
298
|
+
url,
|
|
299
|
+
import: importOption,
|
|
300
|
+
namedExports,
|
|
301
|
+
exportType
|
|
302
|
+
} = parserOptions;
|
|
269
303
|
|
|
270
304
|
switch (type) {
|
|
271
305
|
case CSS_MODULE_TYPE:
|
|
272
306
|
return new CssParser({
|
|
273
307
|
importOption,
|
|
274
308
|
url,
|
|
275
|
-
namedExports
|
|
309
|
+
namedExports,
|
|
310
|
+
exportType
|
|
276
311
|
});
|
|
277
312
|
case CSS_MODULE_TYPE_GLOBAL:
|
|
278
313
|
return new CssParser({
|
|
279
314
|
defaultMode: "global",
|
|
280
315
|
importOption,
|
|
281
316
|
url,
|
|
282
|
-
namedExports
|
|
317
|
+
namedExports,
|
|
318
|
+
exportType
|
|
283
319
|
});
|
|
284
320
|
case CSS_MODULE_TYPE_MODULE:
|
|
285
321
|
return new CssParser({
|
|
286
322
|
defaultMode: "local",
|
|
287
323
|
importOption,
|
|
288
324
|
url,
|
|
289
|
-
namedExports
|
|
325
|
+
namedExports,
|
|
326
|
+
exportType
|
|
290
327
|
});
|
|
291
328
|
case CSS_MODULE_TYPE_AUTO:
|
|
292
329
|
return new CssParser({
|
|
293
330
|
defaultMode: "auto",
|
|
294
331
|
importOption,
|
|
295
332
|
url,
|
|
296
|
-
namedExports
|
|
333
|
+
namedExports,
|
|
334
|
+
exportType
|
|
297
335
|
});
|
|
298
336
|
}
|
|
299
337
|
});
|
|
@@ -545,8 +583,6 @@ class CssModulesPlugin {
|
|
|
545
583
|
onceForChunkSet.add(chunk);
|
|
546
584
|
if (!isEnabledForChunk(chunk)) return;
|
|
547
585
|
|
|
548
|
-
set.add(RuntimeGlobals.makeNamespaceObject);
|
|
549
|
-
|
|
550
586
|
const CssLoadingRuntimeModule = getCssLoadingRuntimeModule();
|
|
551
587
|
compilation.addRuntimeModule(chunk, new CssLoadingRuntimeModule(set));
|
|
552
588
|
};
|
|
@@ -593,6 +629,15 @@ class CssModulesPlugin {
|
|
|
593
629
|
set.add(RuntimeGlobals.publicPath);
|
|
594
630
|
set.add(RuntimeGlobals.getChunkCssFilename);
|
|
595
631
|
});
|
|
632
|
+
|
|
633
|
+
compilation.hooks.runtimeRequirementInTree
|
|
634
|
+
.for(RuntimeGlobals.cssMergeStyleSheets)
|
|
635
|
+
.tap(PLUGIN_NAME, (chunk) => {
|
|
636
|
+
compilation.addRuntimeModule(
|
|
637
|
+
chunk,
|
|
638
|
+
new CssMergeStyleSheetsRuntimeModule()
|
|
639
|
+
);
|
|
640
|
+
});
|
|
596
641
|
}
|
|
597
642
|
);
|
|
598
643
|
}
|
|
@@ -758,18 +803,11 @@ class CssModulesPlugin {
|
|
|
758
803
|
* @param {CssModule} module css module
|
|
759
804
|
* @param {ChunkRenderContext} renderContext options object
|
|
760
805
|
* @param {CompilationHooks} hooks hooks
|
|
761
|
-
* @returns {Source} css module source
|
|
806
|
+
* @returns {Source | null} css module source
|
|
762
807
|
*/
|
|
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);
|
|
808
|
+
static renderModule(module, renderContext, hooks) {
|
|
809
|
+
const { undoPath, moduleFactoryCache, moduleSourceContent } = renderContext;
|
|
810
|
+
const cacheEntry = moduleFactoryCache.get(moduleSourceContent);
|
|
773
811
|
|
|
774
812
|
/** @type {Inheritance} */
|
|
775
813
|
const inheritance = [[module.cssLayer, module.supports, module.media]];
|
|
@@ -791,6 +829,7 @@ class CssModulesPlugin {
|
|
|
791
829
|
) {
|
|
792
830
|
source = cacheEntry.source;
|
|
793
831
|
} else {
|
|
832
|
+
if (!moduleSourceContent) return null;
|
|
794
833
|
const moduleSourceCode =
|
|
795
834
|
/** @type {string} */
|
|
796
835
|
(moduleSourceContent.source());
|
|
@@ -845,7 +884,7 @@ class CssModulesPlugin {
|
|
|
845
884
|
}
|
|
846
885
|
|
|
847
886
|
source = new CachedSource(moduleSource);
|
|
848
|
-
|
|
887
|
+
moduleFactoryCache.set(moduleSourceContent, {
|
|
849
888
|
inheritance,
|
|
850
889
|
undoPath,
|
|
851
890
|
source
|
|
@@ -867,28 +906,39 @@ class CssModulesPlugin {
|
|
|
867
906
|
{
|
|
868
907
|
undoPath,
|
|
869
908
|
chunk,
|
|
870
|
-
chunkGraph,
|
|
871
909
|
codeGenerationResults,
|
|
872
910
|
modules,
|
|
873
|
-
runtimeTemplate
|
|
911
|
+
runtimeTemplate,
|
|
912
|
+
chunkGraph
|
|
874
913
|
},
|
|
875
914
|
hooks
|
|
876
915
|
) {
|
|
877
916
|
const source = new ConcatSource();
|
|
878
917
|
for (const module of modules) {
|
|
879
918
|
try {
|
|
880
|
-
const
|
|
919
|
+
const codeGenResult = codeGenerationResults.get(module, chunk.runtime);
|
|
920
|
+
const moduleSourceContent =
|
|
921
|
+
/** @type {Source} */
|
|
922
|
+
(
|
|
923
|
+
codeGenResult.sources.get("css") ||
|
|
924
|
+
codeGenResult.sources.get("css-import")
|
|
925
|
+
);
|
|
926
|
+
const moduleSource = CssModulesPlugin.renderModule(
|
|
881
927
|
module,
|
|
882
928
|
{
|
|
883
929
|
undoPath,
|
|
884
930
|
chunk,
|
|
885
931
|
chunkGraph,
|
|
886
932
|
codeGenerationResults,
|
|
933
|
+
moduleSourceContent,
|
|
934
|
+
moduleFactoryCache: this._moduleFactoryCache,
|
|
887
935
|
runtimeTemplate
|
|
888
936
|
},
|
|
889
937
|
hooks
|
|
890
938
|
);
|
|
891
|
-
|
|
939
|
+
if (moduleSource) {
|
|
940
|
+
source.add(moduleSource);
|
|
941
|
+
}
|
|
892
942
|
} catch (err) {
|
|
893
943
|
/** @type {Error} */
|
|
894
944
|
(err).message += `\nduring rendering of css ${module.identifier()}`;
|