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
package/lib/config/defaults.js
CHANGED
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
const fs = require("fs");
|
|
9
9
|
const path = require("path");
|
|
10
|
+
const {
|
|
11
|
+
CSS_TYPE,
|
|
12
|
+
JAVASCRIPT_TYPE,
|
|
13
|
+
UNKNOWN_TYPE
|
|
14
|
+
} = require("../ModuleSourceTypeConstants");
|
|
10
15
|
const {
|
|
11
16
|
ASSET_MODULE_TYPE,
|
|
12
17
|
ASSET_MODULE_TYPE_BYTES,
|
|
@@ -52,6 +57,9 @@ const {
|
|
|
52
57
|
/** @typedef {import("../../declarations/WebpackOptions").LibraryType} LibraryType */
|
|
53
58
|
/** @typedef {import("../../declarations/WebpackOptions").Loader} Loader */
|
|
54
59
|
/** @typedef {import("../../declarations/WebpackOptions").Mode} Mode */
|
|
60
|
+
/** @typedef {import("../../declarations/WebpackOptions").HashSalt} HashSalt */
|
|
61
|
+
/** @typedef {import("../../declarations/WebpackOptions").HashSalt} HashDigest */
|
|
62
|
+
/** @typedef {import("../../declarations/WebpackOptions").HashDigestLength} HashDigestLength */
|
|
55
63
|
/** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptions */
|
|
56
64
|
/** @typedef {import("../../declarations/WebpackOptions").Node} WebpackNode */
|
|
57
65
|
/** @typedef {import("../../declarations/WebpackOptions").OptimizationNormalized} Optimization */
|
|
@@ -202,6 +210,7 @@ const {
|
|
|
202
210
|
* & { performance: NonNullable<WebpackOptionsNormalized["performance"]> }
|
|
203
211
|
* & { recordsInputPath: NonNullable<WebpackOptionsNormalized["recordsInputPath"]> }
|
|
204
212
|
* & { recordsOutputPath: NonNullable<WebpackOptionsNormalized["recordsOutputPath"]>
|
|
213
|
+
* & { dotenv: NonNullable<WebpackOptionsNormalized["dotenv"]> }
|
|
205
214
|
* }} WebpackOptionsNormalizedWithDefaults
|
|
206
215
|
*/
|
|
207
216
|
|
|
@@ -389,6 +398,15 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
389
398
|
|
|
390
399
|
applyModuleDefaults(options.module, {
|
|
391
400
|
cache,
|
|
401
|
+
hashSalt: /** @type {NonNullable<Output["hashSalt"]>} */ (
|
|
402
|
+
options.output.hashSalt
|
|
403
|
+
),
|
|
404
|
+
hashDigest: /** @type {NonNullable<Output["hashDigest"]>} */ (
|
|
405
|
+
options.output.hashDigest
|
|
406
|
+
),
|
|
407
|
+
hashDigestLength: /** @type {NonNullable<Output["hashDigestLength"]>} */ (
|
|
408
|
+
options.output.hashDigestLength
|
|
409
|
+
),
|
|
392
410
|
syncWebAssembly:
|
|
393
411
|
/** @type {NonNullable<ExperimentsNormalized["syncWebAssembly"]>} */
|
|
394
412
|
(options.experiments.syncWebAssembly),
|
|
@@ -410,7 +428,10 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
410
428
|
|
|
411
429
|
applyExternalsPresetsDefaults(options.externalsPresets, {
|
|
412
430
|
targetProperties,
|
|
413
|
-
buildHttp: Boolean(options.experiments.buildHttp)
|
|
431
|
+
buildHttp: Boolean(options.experiments.buildHttp),
|
|
432
|
+
outputModule:
|
|
433
|
+
/** @type {NonNullable<WebpackOptionsNormalized["output"]["module"]>} */
|
|
434
|
+
(options.output.module)
|
|
414
435
|
});
|
|
415
436
|
|
|
416
437
|
applyLoaderDefaults(
|
|
@@ -513,6 +534,7 @@ const applyExperimentsDefaults = (
|
|
|
513
534
|
) => {
|
|
514
535
|
D(experiments, "futureDefaults", false);
|
|
515
536
|
D(experiments, "backCompat", !experiments.futureDefaults);
|
|
537
|
+
// TODO do we need sync web assembly in webpack@6?
|
|
516
538
|
D(experiments, "syncWebAssembly", false);
|
|
517
539
|
D(experiments, "asyncWebAssembly", experiments.futureDefaults);
|
|
518
540
|
D(experiments, "outputModule", false);
|
|
@@ -761,11 +783,17 @@ const applyCssGeneratorOptionsDefaults = (
|
|
|
761
783
|
* @param {boolean} options.deferImport is defer import enabled
|
|
762
784
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
763
785
|
* @param {Mode | undefined} options.mode mode
|
|
786
|
+
* @param {HashSalt} options.hashSalt hash salt
|
|
787
|
+
* @param {HashDigest} options.hashDigest hash digest
|
|
788
|
+
* @param {HashDigestLength} options.hashDigestLength hash digest length
|
|
764
789
|
* @returns {void}
|
|
765
790
|
*/
|
|
766
791
|
const applyModuleDefaults = (
|
|
767
792
|
module,
|
|
768
793
|
{
|
|
794
|
+
hashSalt,
|
|
795
|
+
hashDigest,
|
|
796
|
+
hashDigestLength,
|
|
769
797
|
cache,
|
|
770
798
|
syncWebAssembly,
|
|
771
799
|
asyncWebAssembly,
|
|
@@ -866,6 +894,51 @@ const applyModuleDefaults = (
|
|
|
866
894
|
true
|
|
867
895
|
);
|
|
868
896
|
|
|
897
|
+
for (const type of [
|
|
898
|
+
CSS_MODULE_TYPE_AUTO,
|
|
899
|
+
CSS_MODULE_TYPE_MODULE,
|
|
900
|
+
CSS_MODULE_TYPE_GLOBAL
|
|
901
|
+
]) {
|
|
902
|
+
F(module.parser, type, () => ({}));
|
|
903
|
+
|
|
904
|
+
D(
|
|
905
|
+
/** @type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
906
|
+
(module.parser[type]),
|
|
907
|
+
"animation",
|
|
908
|
+
true
|
|
909
|
+
);
|
|
910
|
+
D(
|
|
911
|
+
/** @type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
912
|
+
(module.parser[type]),
|
|
913
|
+
"container",
|
|
914
|
+
true
|
|
915
|
+
);
|
|
916
|
+
D(
|
|
917
|
+
/** @type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
918
|
+
(module.parser[type]),
|
|
919
|
+
"customIdents",
|
|
920
|
+
true
|
|
921
|
+
);
|
|
922
|
+
D(
|
|
923
|
+
/** @type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
924
|
+
(module.parser[type]),
|
|
925
|
+
"dashedIdents",
|
|
926
|
+
true
|
|
927
|
+
);
|
|
928
|
+
D(
|
|
929
|
+
/** @type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
930
|
+
(module.parser[type]),
|
|
931
|
+
"function",
|
|
932
|
+
true
|
|
933
|
+
);
|
|
934
|
+
D(
|
|
935
|
+
/** @type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
936
|
+
(module.parser[type]),
|
|
937
|
+
"grid",
|
|
938
|
+
true
|
|
939
|
+
);
|
|
940
|
+
}
|
|
941
|
+
|
|
869
942
|
F(module.generator, CSS_MODULE_TYPE, () => ({}));
|
|
870
943
|
|
|
871
944
|
applyCssGeneratorOptionsDefaults(
|
|
@@ -875,49 +948,58 @@ const applyModuleDefaults = (
|
|
|
875
948
|
);
|
|
876
949
|
|
|
877
950
|
const localIdentName =
|
|
878
|
-
|
|
951
|
+
mode === "development"
|
|
952
|
+
? uniqueName.length > 0
|
|
953
|
+
? "[uniqueName]-[id]-[local]"
|
|
954
|
+
: "[id]-[local]"
|
|
955
|
+
: "[fullhash]";
|
|
956
|
+
const localIdentHashSalt = hashSalt;
|
|
957
|
+
const localIdentHashDigest = "base64url";
|
|
958
|
+
const localIdentHashDigestLength = 6;
|
|
959
|
+
const exportsConvention = "as-is";
|
|
960
|
+
|
|
961
|
+
for (const type of [
|
|
962
|
+
CSS_MODULE_TYPE_AUTO,
|
|
963
|
+
CSS_MODULE_TYPE_MODULE,
|
|
964
|
+
CSS_MODULE_TYPE_GLOBAL
|
|
965
|
+
]) {
|
|
966
|
+
F(module.generator, type, () => ({}));
|
|
879
967
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
);
|
|
887
|
-
D(
|
|
888
|
-
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]>} */
|
|
889
|
-
(module.generator[CSS_MODULE_TYPE_AUTO]),
|
|
890
|
-
"exportsConvention",
|
|
891
|
-
"as-is"
|
|
892
|
-
);
|
|
968
|
+
D(
|
|
969
|
+
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
970
|
+
(module.generator[type]),
|
|
971
|
+
"localIdentName",
|
|
972
|
+
localIdentName
|
|
973
|
+
);
|
|
893
974
|
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
);
|
|
901
|
-
D(
|
|
902
|
-
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
|
|
903
|
-
(module.generator[CSS_MODULE_TYPE_MODULE]),
|
|
904
|
-
"exportsConvention",
|
|
905
|
-
"as-is"
|
|
906
|
-
);
|
|
975
|
+
D(
|
|
976
|
+
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
977
|
+
(module.generator[type]),
|
|
978
|
+
"localIdentHashSalt",
|
|
979
|
+
localIdentHashSalt
|
|
980
|
+
);
|
|
907
981
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
982
|
+
D(
|
|
983
|
+
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
|
|
984
|
+
(module.generator[type]),
|
|
985
|
+
"localIdentHashDigest",
|
|
986
|
+
localIdentHashDigest
|
|
987
|
+
);
|
|
988
|
+
|
|
989
|
+
D(
|
|
990
|
+
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
|
|
991
|
+
(module.generator[type]),
|
|
992
|
+
"localIdentHashDigestLength",
|
|
993
|
+
localIdentHashDigestLength
|
|
994
|
+
);
|
|
995
|
+
|
|
996
|
+
D(
|
|
997
|
+
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
|
|
998
|
+
(module.generator[type]),
|
|
999
|
+
"exportsConvention",
|
|
1000
|
+
exportsConvention
|
|
1001
|
+
);
|
|
1002
|
+
}
|
|
921
1003
|
}
|
|
922
1004
|
|
|
923
1005
|
A(module, "defaultRules", () => {
|
|
@@ -1042,6 +1124,35 @@ const applyModuleDefaults = (
|
|
|
1042
1124
|
type: CSS_MODULE_TYPE,
|
|
1043
1125
|
resolve
|
|
1044
1126
|
});
|
|
1127
|
+
// For CSS modules, i.e. `.class { composes: className from "./style.css" }`
|
|
1128
|
+
// We inherit for such constructions
|
|
1129
|
+
rules.push({
|
|
1130
|
+
dependency: /css-import-local-module/,
|
|
1131
|
+
type: CSS_MODULE_TYPE_MODULE,
|
|
1132
|
+
resolve
|
|
1133
|
+
});
|
|
1134
|
+
rules.push({
|
|
1135
|
+
dependency: /css-import-global-module/,
|
|
1136
|
+
type: CSS_MODULE_TYPE_GLOBAL,
|
|
1137
|
+
resolve
|
|
1138
|
+
});
|
|
1139
|
+
|
|
1140
|
+
rules.push(
|
|
1141
|
+
{
|
|
1142
|
+
with: { type: "css" },
|
|
1143
|
+
parser: {
|
|
1144
|
+
exportType: "css-style-sheet"
|
|
1145
|
+
},
|
|
1146
|
+
resolve
|
|
1147
|
+
},
|
|
1148
|
+
{
|
|
1149
|
+
assert: { type: "css" },
|
|
1150
|
+
parser: {
|
|
1151
|
+
exportType: "css-style-sheet"
|
|
1152
|
+
},
|
|
1153
|
+
resolve
|
|
1154
|
+
}
|
|
1155
|
+
);
|
|
1045
1156
|
}
|
|
1046
1157
|
rules.push(
|
|
1047
1158
|
{
|
|
@@ -1058,11 +1169,13 @@ const applyModuleDefaults = (
|
|
|
1058
1169
|
},
|
|
1059
1170
|
{
|
|
1060
1171
|
with: { type: JSON_MODULE_TYPE },
|
|
1061
|
-
type: JSON_MODULE_TYPE
|
|
1172
|
+
type: JSON_MODULE_TYPE,
|
|
1173
|
+
parser: { namedExports: false }
|
|
1062
1174
|
},
|
|
1063
1175
|
{
|
|
1064
1176
|
assert: { type: JSON_MODULE_TYPE },
|
|
1065
|
-
type: JSON_MODULE_TYPE
|
|
1177
|
+
type: JSON_MODULE_TYPE,
|
|
1178
|
+
parser: { namedExports: false }
|
|
1066
1179
|
},
|
|
1067
1180
|
{
|
|
1068
1181
|
with: { type: "text" },
|
|
@@ -1182,6 +1295,12 @@ const applyOutputDefaults = (
|
|
|
1182
1295
|
"const",
|
|
1183
1296
|
() => tp && optimistic(/** @type {boolean | undefined} */ (tp.const))
|
|
1184
1297
|
);
|
|
1298
|
+
F(
|
|
1299
|
+
environment,
|
|
1300
|
+
"methodShorthand",
|
|
1301
|
+
() =>
|
|
1302
|
+
tp && optimistic(/** @type {boolean | undefined} */ (tp.methodShorthand))
|
|
1303
|
+
);
|
|
1185
1304
|
F(
|
|
1186
1305
|
environment,
|
|
1187
1306
|
"arrowFunction",
|
|
@@ -1220,6 +1339,13 @@ const applyOutputDefaults = (
|
|
|
1220
1339
|
/** @type {boolean | undefined} */ (tp.nodePrefixForCoreModules)
|
|
1221
1340
|
)
|
|
1222
1341
|
);
|
|
1342
|
+
F(
|
|
1343
|
+
environment,
|
|
1344
|
+
"importMetaDirnameAndFilename",
|
|
1345
|
+
() =>
|
|
1346
|
+
// No optimistic, because it is new
|
|
1347
|
+
tp && /** @type {boolean | undefined} */ (tp.importMetaDirnameAndFilename)
|
|
1348
|
+
);
|
|
1223
1349
|
F(
|
|
1224
1350
|
environment,
|
|
1225
1351
|
"templateLiteral",
|
|
@@ -1288,7 +1414,7 @@ const applyOutputDefaults = (
|
|
|
1288
1414
|
}
|
|
1289
1415
|
return "[id].css";
|
|
1290
1416
|
});
|
|
1291
|
-
D(output, "assetModuleFilename", "[hash][ext][query]");
|
|
1417
|
+
D(output, "assetModuleFilename", "[hash][ext][query][fragment]");
|
|
1292
1418
|
D(output, "webassemblyModuleFilename", "[hash].module.wasm");
|
|
1293
1419
|
D(output, "compareBeforeEmit", true);
|
|
1294
1420
|
D(output, "charset", !futureDefaults);
|
|
@@ -1301,6 +1427,8 @@ const applyOutputDefaults = (
|
|
|
1301
1427
|
if (tp) {
|
|
1302
1428
|
if (tp.global) return "global";
|
|
1303
1429
|
if (tp.globalThis) return "globalThis";
|
|
1430
|
+
// For universal target (i.e. code can be run in browser/node/worker etc.)
|
|
1431
|
+
if (tp.web === null && tp.node === null && tp.module) return "globalThis";
|
|
1304
1432
|
}
|
|
1305
1433
|
return "self";
|
|
1306
1434
|
});
|
|
@@ -1403,7 +1531,6 @@ const applyOutputDefaults = (
|
|
|
1403
1531
|
if (tp.nodeBuiltins) return "async-node";
|
|
1404
1532
|
if (
|
|
1405
1533
|
(tp.nodeBuiltins === null || tp.fetchWasm === null) &&
|
|
1406
|
-
asyncWebAssembly &&
|
|
1407
1534
|
output.module &&
|
|
1408
1535
|
environment.dynamicImport
|
|
1409
1536
|
) {
|
|
@@ -1472,7 +1599,7 @@ const applyOutputDefaults = (
|
|
|
1472
1599
|
*/
|
|
1473
1600
|
const forEachEntry = (fn) => {
|
|
1474
1601
|
for (const name of Object.keys(entry)) {
|
|
1475
|
-
fn(/** @type {{[k: string]
|
|
1602
|
+
fn(/** @type {{ [k: string]: EntryDescription }} */ (entry)[name]);
|
|
1476
1603
|
}
|
|
1477
1604
|
};
|
|
1478
1605
|
A(output, "enabledLibraryTypes", () => {
|
|
@@ -1527,35 +1654,47 @@ const applyOutputDefaults = (
|
|
|
1527
1654
|
* @param {object} options options
|
|
1528
1655
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
1529
1656
|
* @param {boolean} options.buildHttp buildHttp experiment enabled
|
|
1657
|
+
* @param {boolean} options.outputModule is output type is module
|
|
1530
1658
|
* @returns {void}
|
|
1531
1659
|
*/
|
|
1532
1660
|
const applyExternalsPresetsDefaults = (
|
|
1533
1661
|
externalsPresets,
|
|
1534
|
-
{ targetProperties, buildHttp }
|
|
1662
|
+
{ targetProperties, buildHttp, outputModule }
|
|
1535
1663
|
) => {
|
|
1664
|
+
/**
|
|
1665
|
+
* @param {keyof TargetProperties} key a key
|
|
1666
|
+
* @returns {boolean} true when target is universal, otherwise false
|
|
1667
|
+
*/
|
|
1668
|
+
const isUniversal = (key) =>
|
|
1669
|
+
Boolean(outputModule && targetProperties && targetProperties[key] === null);
|
|
1670
|
+
|
|
1536
1671
|
D(
|
|
1537
1672
|
externalsPresets,
|
|
1538
1673
|
"web",
|
|
1539
1674
|
/** @type {boolean | undefined} */
|
|
1540
|
-
(
|
|
1675
|
+
(
|
|
1676
|
+
!buildHttp &&
|
|
1677
|
+
targetProperties &&
|
|
1678
|
+
(targetProperties.web || isUniversal("node"))
|
|
1679
|
+
)
|
|
1541
1680
|
);
|
|
1542
1681
|
D(
|
|
1543
1682
|
externalsPresets,
|
|
1544
1683
|
"node",
|
|
1545
1684
|
/** @type {boolean | undefined} */
|
|
1546
|
-
(targetProperties && targetProperties.node)
|
|
1685
|
+
(targetProperties && (targetProperties.node || isUniversal("node")))
|
|
1547
1686
|
);
|
|
1548
1687
|
D(
|
|
1549
1688
|
externalsPresets,
|
|
1550
1689
|
"nwjs",
|
|
1551
1690
|
/** @type {boolean | undefined} */
|
|
1552
|
-
(targetProperties && targetProperties.nwjs)
|
|
1691
|
+
(targetProperties && (targetProperties.nwjs || isUniversal("nwjs")))
|
|
1553
1692
|
);
|
|
1554
1693
|
D(
|
|
1555
1694
|
externalsPresets,
|
|
1556
1695
|
"electron",
|
|
1557
1696
|
/** @type {boolean | undefined} */
|
|
1558
|
-
(targetProperties && targetProperties.electron)
|
|
1697
|
+
((targetProperties && targetProperties.electron) || isUniversal("electron"))
|
|
1559
1698
|
);
|
|
1560
1699
|
D(
|
|
1561
1700
|
externalsPresets,
|
|
@@ -1564,7 +1703,7 @@ const applyExternalsPresetsDefaults = (
|
|
|
1564
1703
|
(
|
|
1565
1704
|
targetProperties &&
|
|
1566
1705
|
targetProperties.electron &&
|
|
1567
|
-
targetProperties.electronMain
|
|
1706
|
+
(targetProperties.electronMain || isUniversal("electronMain"))
|
|
1568
1707
|
)
|
|
1569
1708
|
);
|
|
1570
1709
|
D(
|
|
@@ -1574,7 +1713,7 @@ const applyExternalsPresetsDefaults = (
|
|
|
1574
1713
|
(
|
|
1575
1714
|
targetProperties &&
|
|
1576
1715
|
targetProperties.electron &&
|
|
1577
|
-
targetProperties.electronPreload
|
|
1716
|
+
(targetProperties.electronPreload || isUniversal("electronPreload"))
|
|
1578
1717
|
)
|
|
1579
1718
|
);
|
|
1580
1719
|
D(
|
|
@@ -1584,7 +1723,7 @@ const applyExternalsPresetsDefaults = (
|
|
|
1584
1723
|
(
|
|
1585
1724
|
targetProperties &&
|
|
1586
1725
|
targetProperties.electron &&
|
|
1587
|
-
targetProperties.electronRenderer
|
|
1726
|
+
(targetProperties.electronRenderer || isUniversal("electronRenderer"))
|
|
1588
1727
|
)
|
|
1589
1728
|
);
|
|
1590
1729
|
};
|
|
@@ -1629,15 +1768,28 @@ const applyNodeDefaults = (
|
|
|
1629
1768
|
|
|
1630
1769
|
F(node, "global", () => {
|
|
1631
1770
|
if (targetProperties && targetProperties.global) return false;
|
|
1632
|
-
//
|
|
1771
|
+
// We use `warm` because overriding `global` with `globalThis` (or a polyfill) is sometimes safe (global.URL), sometimes unsafe (global.process), but we need to warn about it
|
|
1633
1772
|
return futureDefaults ? "warn" : true;
|
|
1634
1773
|
});
|
|
1635
1774
|
|
|
1636
1775
|
const handlerForNames = () => {
|
|
1637
|
-
|
|
1638
|
-
|
|
1776
|
+
// TODO webpack@6 remove `node-module` in favor of `eval-only`
|
|
1777
|
+
if (targetProperties) {
|
|
1778
|
+
if (targetProperties.node) {
|
|
1779
|
+
return "eval-only";
|
|
1780
|
+
}
|
|
1781
|
+
|
|
1782
|
+
// For the "universal" target we only evaluate these values
|
|
1783
|
+
if (
|
|
1784
|
+
outputModule &&
|
|
1785
|
+
targetProperties.node === null &&
|
|
1786
|
+
targetProperties.web === null
|
|
1787
|
+
) {
|
|
1788
|
+
return "eval-only";
|
|
1789
|
+
}
|
|
1639
1790
|
}
|
|
1640
|
-
|
|
1791
|
+
|
|
1792
|
+
// TODO webpack@6 should we use `warn-even-only`?
|
|
1641
1793
|
return futureDefaults ? "warn-mock" : "mock";
|
|
1642
1794
|
};
|
|
1643
1795
|
|
|
@@ -1723,7 +1875,9 @@ const applyOptimizationDefaults = (
|
|
|
1723
1875
|
const { splitChunks } = optimization;
|
|
1724
1876
|
if (splitChunks) {
|
|
1725
1877
|
A(splitChunks, "defaultSizeTypes", () =>
|
|
1726
|
-
css
|
|
1878
|
+
css
|
|
1879
|
+
? [JAVASCRIPT_TYPE, CSS_TYPE, UNKNOWN_TYPE]
|
|
1880
|
+
: [JAVASCRIPT_TYPE, UNKNOWN_TYPE]
|
|
1727
1881
|
);
|
|
1728
1882
|
D(splitChunks, "hidePathInfo", production);
|
|
1729
1883
|
D(splitChunks, "chunks", "async");
|
|
@@ -1844,8 +1998,8 @@ const getResolveDefaults = ({
|
|
|
1844
1998
|
styleConditions.push(mode === "development" ? "development" : "production");
|
|
1845
1999
|
styleConditions.push("style");
|
|
1846
2000
|
|
|
1847
|
-
/** @type {
|
|
1848
|
-
|
|
2001
|
+
/** @type {ResolveOptions} */
|
|
2002
|
+
const cssResolveOptions = {
|
|
1849
2003
|
// We avoid using any main files because we have to be consistent with CSS `@import`
|
|
1850
2004
|
// and CSS `@import` does not handle `main` files in directories,
|
|
1851
2005
|
// you should always specify the full URL for styles
|
|
@@ -1855,6 +2009,17 @@ const getResolveDefaults = ({
|
|
|
1855
2009
|
extensions: [".css"],
|
|
1856
2010
|
preferRelative: true
|
|
1857
2011
|
};
|
|
2012
|
+
|
|
2013
|
+
/** @type {NonNullable<ResolveOptions["byDependency"]>} */
|
|
2014
|
+
(resolveOptions.byDependency)["css-import"] = cssResolveOptions;
|
|
2015
|
+
// For CSS modules, i.e. `.class { composes: className from "./style.css" }`
|
|
2016
|
+
// We inherit for such constructions
|
|
2017
|
+
/** @type {NonNullable<ResolveOptions["byDependency"]>} */
|
|
2018
|
+
(resolveOptions.byDependency)["css-import-local-module"] =
|
|
2019
|
+
cssResolveOptions;
|
|
2020
|
+
/** @type {NonNullable<ResolveOptions["byDependency"]>} */
|
|
2021
|
+
(resolveOptions.byDependency)["css-import-global-module"] =
|
|
2022
|
+
cssResolveOptions;
|
|
1858
2023
|
}
|
|
1859
2024
|
|
|
1860
2025
|
return resolveOptions;
|
|
@@ -54,7 +54,7 @@ const nestedConfig = (value, fn) =>
|
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* @template T
|
|
57
|
-
* @param {T|undefined} value value or not
|
|
57
|
+
* @param {T | undefined} value value or not
|
|
58
58
|
* @returns {T} result value
|
|
59
59
|
*/
|
|
60
60
|
const cloneObject = (value) => /** @type {T} */ ({ ...value });
|
|
@@ -90,7 +90,7 @@ const optionalNestedArray = (value, fn) =>
|
|
|
90
90
|
/**
|
|
91
91
|
* @template T
|
|
92
92
|
* @template R
|
|
93
|
-
* @param {Record<string, T
|
|
93
|
+
* @param {Record<string, T> | undefined} value value or not
|
|
94
94
|
* @param {(value: T) => R} fn nested handler
|
|
95
95
|
* @param {Record<string, (value: T) => R>=} customKeys custom nested handler for some keys
|
|
96
96
|
* @returns {Record<string, R>} result value
|
|
@@ -178,6 +178,7 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
178
178
|
return { ...devServer };
|
|
179
179
|
}),
|
|
180
180
|
devtool: config.devtool,
|
|
181
|
+
dotenv: config.dotenv,
|
|
181
182
|
entry:
|
|
182
183
|
config.entry === undefined
|
|
183
184
|
? { main: {} }
|
|
@@ -241,6 +242,7 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
241
242
|
unsafeCache: module.unsafeCache,
|
|
242
243
|
parser: keyedNestedConfig(module.parser, cloneObject, {
|
|
243
244
|
javascript: (parserOptions) => ({
|
|
245
|
+
// TODO webpack 6 remove from `ModuleOptions`, keep only `*ByModuleType`
|
|
244
246
|
unknownContextRequest: module.unknownContextRequest,
|
|
245
247
|
unknownContextRegExp: module.unknownContextRegExp,
|
|
246
248
|
unknownContextRecursive: module.unknownContextRecursive,
|
|
@@ -252,7 +254,6 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
252
254
|
wrappedContextRegExp: module.wrappedContextRegExp,
|
|
253
255
|
wrappedContextRecursive: module.wrappedContextRecursive,
|
|
254
256
|
wrappedContextCritical: module.wrappedContextCritical,
|
|
255
|
-
// TODO webpack 6 remove
|
|
256
257
|
strictExportPresence: module.strictExportPresence,
|
|
257
258
|
strictThisContextOnImports: module.strictThisContextOnImports,
|
|
258
259
|
...parserOptions
|
package/lib/config/target.js
CHANGED
|
@@ -42,6 +42,7 @@ const getDefaultTarget = (context) => {
|
|
|
42
42
|
* @property {boolean | null} require has require function available
|
|
43
43
|
* @property {boolean | null} nodeBuiltins has node.js built-in modules available
|
|
44
44
|
* @property {boolean | null} nodePrefixForCoreModules node.js allows to use `node:` prefix for core modules
|
|
45
|
+
* @property {boolean | null} importMetaDirnameAndFilename node.js allows to use `import.meta.dirname` and `import.meta.filename`
|
|
45
46
|
* @property {boolean | null} document has document available (allows script tags)
|
|
46
47
|
* @property {boolean | null} importScripts has importScripts available
|
|
47
48
|
* @property {boolean | null} importScriptsInWorker has importScripts available when creating a worker
|
|
@@ -54,6 +55,7 @@ const getDefaultTarget = (context) => {
|
|
|
54
55
|
* @property {boolean | null} globalThis has globalThis variable available
|
|
55
56
|
* @property {boolean | null} bigIntLiteral big int literal syntax is available
|
|
56
57
|
* @property {boolean | null} const const and let variable declarations are available
|
|
58
|
+
* @property {boolean | null} methodShorthand object method shorthand is available
|
|
57
59
|
* @property {boolean | null} arrowFunction arrow functions are available
|
|
58
60
|
* @property {boolean | null} forOf for of iteration is available
|
|
59
61
|
* @property {boolean | null} destructuring destructuring is available
|
|
@@ -178,6 +180,9 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
178
180
|
nodeBuiltins: true,
|
|
179
181
|
// v16.0.0, v14.18.0
|
|
180
182
|
nodePrefixForCoreModules: Number(major) < 15 ? v(14, 18) : v(16),
|
|
183
|
+
// Added in: v21.2.0, v20.11.0, but Node.js will output experimental warning, we don't want it
|
|
184
|
+
// v24.0.0, v22.16.0 - This property is no longer experimental.
|
|
185
|
+
importMetaDirnameAndFilename: v(22, 16),
|
|
181
186
|
global: true,
|
|
182
187
|
document: false,
|
|
183
188
|
fetchWasm: false,
|
|
@@ -188,6 +193,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
188
193
|
const: v(6),
|
|
189
194
|
templateLiteral: v(4),
|
|
190
195
|
optionalChaining: v(14),
|
|
196
|
+
methodShorthand: v(4),
|
|
191
197
|
arrowFunction: v(6),
|
|
192
198
|
asyncFunction: v(7, 6),
|
|
193
199
|
forOf: v(5),
|
|
@@ -223,6 +229,8 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
223
229
|
// 15.0.0 - Node.js v16.5
|
|
224
230
|
// 14.0.0 - Mode.js v14.17, but prefixes only since v14.18
|
|
225
231
|
nodePrefixForCoreModules: v(15),
|
|
232
|
+
// 37.0.0 - Node.js v22.16
|
|
233
|
+
importMetaDirnameAndFilename: v(37),
|
|
226
234
|
|
|
227
235
|
require: true,
|
|
228
236
|
document: context === "renderer",
|
|
@@ -234,6 +242,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
234
242
|
const: v(1, 1),
|
|
235
243
|
templateLiteral: v(1, 1),
|
|
236
244
|
optionalChaining: v(8),
|
|
245
|
+
methodShorthand: v(1, 1),
|
|
237
246
|
arrowFunction: v(1, 1),
|
|
238
247
|
asyncFunction: v(1, 7),
|
|
239
248
|
forOf: v(0, 36),
|
|
@@ -272,6 +281,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
272
281
|
const: v(0, 15),
|
|
273
282
|
templateLiteral: v(0, 13),
|
|
274
283
|
optionalChaining: v(0, 44),
|
|
284
|
+
methodShorthand: v(0, 15),
|
|
275
285
|
arrowFunction: v(0, 15),
|
|
276
286
|
asyncFunction: v(0, 21),
|
|
277
287
|
forOf: v(0, 13),
|
|
@@ -294,6 +304,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
294
304
|
const: v >= 2015,
|
|
295
305
|
templateLiteral: v >= 2015,
|
|
296
306
|
optionalChaining: v >= 2020,
|
|
307
|
+
methodShorthand: v >= 2015,
|
|
297
308
|
arrowFunction: v >= 2015,
|
|
298
309
|
forOf: v >= 2015,
|
|
299
310
|
destructuring: v >= 2015,
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
|
9
9
|
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
|
10
10
|
const Module = require("../Module");
|
|
11
|
-
const {
|
|
11
|
+
const {
|
|
12
|
+
JAVASCRIPT_TYPE,
|
|
13
|
+
JAVASCRIPT_TYPES
|
|
14
|
+
} = require("../ModuleSourceTypeConstants");
|
|
12
15
|
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
|
|
13
16
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
14
17
|
const Template = require("../Template");
|
|
@@ -57,7 +60,7 @@ class ContainerEntryModule extends Module {
|
|
|
57
60
|
* @returns {SourceTypes} types available (do not mutate)
|
|
58
61
|
*/
|
|
59
62
|
getSourceTypes() {
|
|
60
|
-
return
|
|
63
|
+
return JAVASCRIPT_TYPES;
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
/**
|
|
@@ -242,7 +245,7 @@ class ContainerEntryModule extends Module {
|
|
|
242
245
|
]);
|
|
243
246
|
|
|
244
247
|
sources.set(
|
|
245
|
-
|
|
248
|
+
JAVASCRIPT_TYPE,
|
|
246
249
|
this.useSourceMap || this.useSimpleSourceMap
|
|
247
250
|
? new OriginalSource(source, "webpack/container-entry")
|
|
248
251
|
: new RawSource(source)
|
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
const { RawSource } = require("webpack-sources");
|
|
9
9
|
const Module = require("../Module");
|
|
10
|
-
const {
|
|
10
|
+
const {
|
|
11
|
+
JAVASCRIPT_TYPE,
|
|
12
|
+
JAVASCRIPT_TYPES
|
|
13
|
+
} = require("../ModuleSourceTypeConstants");
|
|
11
14
|
const { WEBPACK_MODULE_TYPE_FALLBACK } = require("../ModuleTypeConstants");
|
|
12
15
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
13
16
|
const Template = require("../Template");
|
|
@@ -122,7 +125,7 @@ class FallbackModule extends Module {
|
|
|
122
125
|
* @returns {SourceTypes} types available (do not mutate)
|
|
123
126
|
*/
|
|
124
127
|
getSourceTypes() {
|
|
125
|
-
return
|
|
128
|
+
return JAVASCRIPT_TYPES;
|
|
126
129
|
}
|
|
127
130
|
|
|
128
131
|
/**
|
|
@@ -156,7 +159,7 @@ class FallbackModule extends Module {
|
|
|
156
159
|
"module.exports = loop();"
|
|
157
160
|
]);
|
|
158
161
|
const sources = new Map();
|
|
159
|
-
sources.set(
|
|
162
|
+
sources.set(JAVASCRIPT_TYPE, new RawSource(code));
|
|
160
163
|
return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS };
|
|
161
164
|
}
|
|
162
165
|
|
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
const { RawSource } = require("webpack-sources");
|
|
9
9
|
const Module = require("../Module");
|
|
10
|
-
const {
|
|
11
|
-
REMOTE_AND_SHARE_INIT_TYPES
|
|
12
|
-
} = require("../ModuleSourceTypesConstants");
|
|
10
|
+
const { REMOTE_AND_SHARE_INIT_TYPES } = require("../ModuleSourceTypeConstants");
|
|
13
11
|
const { WEBPACK_MODULE_TYPE_REMOTE } = require("../ModuleTypeConstants");
|
|
14
12
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
15
13
|
const makeSerializable = require("../util/makeSerializable");
|