webpack 5.22.0 → 5.24.2
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.
Potentially problematic release.
This version of webpack might be problematic. Click here for more details.
- package/bin/webpack.js +0 -0
- package/lib/CaseSensitiveModulesWarning.js +3 -3
- package/lib/ChunkGraph.js +13 -5
- package/lib/Compilation.js +14 -7
- package/lib/Dependency.js +2 -0
- package/lib/ExportsInfo.js +23 -7
- package/lib/FlagDependencyExportsPlugin.js +16 -5
- package/lib/Module.js +5 -3
- package/lib/ModuleGraph.js +42 -6
- package/lib/ModuleGraphConnection.js +2 -2
- package/lib/MultiCompiler.js +29 -12
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimePlugin.js +8 -0
- package/lib/Watching.js +13 -18
- package/lib/WebpackOptionsApply.js +6 -6
- package/lib/async-modules/InferAsyncModulesPlugin.js +10 -6
- package/lib/config/defaults.js +26 -10
- package/lib/config/target.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +60 -20
- package/lib/dependencies/URLDependency.js +35 -13
- package/lib/dependencies/URLPlugin.js +3 -1
- package/lib/dependencies/WorkerPlugin.js +7 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +28 -17
- package/lib/index.js +2 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +15 -4
- package/lib/javascript/JavascriptModulesPlugin.js +5 -5
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +6 -0
- package/lib/optimize/ConcatenatedModule.js +14 -9
- package/lib/optimize/ModuleConcatenationPlugin.js +559 -516
- package/lib/optimize/SideEffectsFlagPlugin.js +17 -1
- package/lib/runtime/RelativeUrlRuntimeModule.js +41 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +1 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +140 -131
- package/lib/util/SetHelpers.js +15 -0
- package/lib/util/fs.js +2 -0
- package/lib/util/semver.js +4 -4
- package/package.json +3 -8
- package/schemas/WebpackOptions.json +147 -5
- package/types.d.ts +122 -23
@@ -264,8 +264,24 @@ class SideEffectsFlagPlugin {
|
|
264
264
|
moduleGraph,
|
265
265
|
({ module }) =>
|
266
266
|
module.getSideEffectsConnectionState(moduleGraph) ===
|
267
|
-
false
|
267
|
+
false,
|
268
|
+
({ module: newModule, export: exportName }) => {
|
269
|
+
moduleGraph.updateModule(dep, newModule);
|
270
|
+
moduleGraph.addExplanation(
|
271
|
+
dep,
|
272
|
+
"(skipped side-effect-free modules)"
|
273
|
+
);
|
274
|
+
const ids = dep.getIds(moduleGraph);
|
275
|
+
dep.setIds(
|
276
|
+
moduleGraph,
|
277
|
+
exportName
|
278
|
+
? [...exportName, ...ids.slice(1)]
|
279
|
+
: ids.slice(1)
|
280
|
+
);
|
281
|
+
return moduleGraph.getConnection(dep);
|
282
|
+
}
|
268
283
|
);
|
284
|
+
continue;
|
269
285
|
}
|
270
286
|
// TODO improve for nested imports
|
271
287
|
const ids = dep.getIds(moduleGraph);
|
@@ -0,0 +1,41 @@
|
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
*/
|
4
|
+
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
8
|
+
const Template = require("../Template");
|
9
|
+
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
10
|
+
|
11
|
+
class RelativeUrlRuntimeModule extends HelperRuntimeModule {
|
12
|
+
constructor() {
|
13
|
+
super("relative url");
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* @returns {string} runtime code
|
18
|
+
*/
|
19
|
+
generate() {
|
20
|
+
const { runtimeTemplate } = this.compilation;
|
21
|
+
return Template.asString([
|
22
|
+
`${RuntimeGlobals.relativeUrl} = function RelativeURL(url) {`,
|
23
|
+
Template.indent([
|
24
|
+
'var realUrl = new URL(url, "x:/");',
|
25
|
+
"var values = {};",
|
26
|
+
"for (var key in realUrl) values[key] = realUrl[key];",
|
27
|
+
"values.href = url;",
|
28
|
+
'values.pathname = url.replace(/[?#].*/, "");',
|
29
|
+
'values.origin = values.protocol = "";',
|
30
|
+
`values.toString = values.toJSON = ${runtimeTemplate.returningFunction(
|
31
|
+
"url"
|
32
|
+
)};`,
|
33
|
+
"for (var key in values) Object.defineProperty(this, key, Object.assign({ enumerable: true, configurable: true, value: values[key] }));"
|
34
|
+
]),
|
35
|
+
"};",
|
36
|
+
`${RuntimeGlobals.relativeUrl}.prototype = URL.prototype;`
|
37
|
+
]);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
module.exports = RelativeUrlRuntimeModule;
|
@@ -56,6 +56,7 @@ class StartupChunkDependenciesPlugin {
|
|
56
56
|
.for(RuntimeGlobals.startupEntrypoint)
|
57
57
|
.tap("StartupChunkDependenciesPlugin", (chunk, set) => {
|
58
58
|
if (!isEnabledForChunk(chunk)) return;
|
59
|
+
set.add(RuntimeGlobals.require);
|
59
60
|
set.add(RuntimeGlobals.ensureChunk);
|
60
61
|
set.add(RuntimeGlobals.ensureChunkIncludeEntries);
|
61
62
|
compilation.addRuntimeModule(
|
@@ -460,7 +460,7 @@ const EXTRACT_ERROR = {
|
|
460
460
|
/** @type {SimpleExtractors} */
|
461
461
|
const SIMPLE_EXTRACTORS = {
|
462
462
|
compilation: {
|
463
|
-
_: (object, compilation, context) => {
|
463
|
+
_: (object, compilation, context, options) => {
|
464
464
|
if (!context.makePathsRelative) {
|
465
465
|
context.makePathsRelative = makePathsRelative.bindContextCache(
|
466
466
|
compilation.compiler.context,
|
@@ -495,6 +495,144 @@ const SIMPLE_EXTRACTORS = {
|
|
495
495
|
if (compilation.needAdditionalPass) {
|
496
496
|
object.needAdditionalPass = true;
|
497
497
|
}
|
498
|
+
|
499
|
+
const { logging, loggingDebug, loggingTrace } = options;
|
500
|
+
if (logging || (loggingDebug && loggingDebug.length > 0)) {
|
501
|
+
const util = require("util");
|
502
|
+
object.logging = {};
|
503
|
+
let acceptedTypes;
|
504
|
+
let collapsedGroups = false;
|
505
|
+
switch (logging) {
|
506
|
+
default:
|
507
|
+
acceptedTypes = new Set();
|
508
|
+
break;
|
509
|
+
case "error":
|
510
|
+
acceptedTypes = new Set([LogType.error]);
|
511
|
+
break;
|
512
|
+
case "warn":
|
513
|
+
acceptedTypes = new Set([LogType.error, LogType.warn]);
|
514
|
+
break;
|
515
|
+
case "info":
|
516
|
+
acceptedTypes = new Set([
|
517
|
+
LogType.error,
|
518
|
+
LogType.warn,
|
519
|
+
LogType.info
|
520
|
+
]);
|
521
|
+
break;
|
522
|
+
case "log":
|
523
|
+
acceptedTypes = new Set([
|
524
|
+
LogType.error,
|
525
|
+
LogType.warn,
|
526
|
+
LogType.info,
|
527
|
+
LogType.log,
|
528
|
+
LogType.group,
|
529
|
+
LogType.groupEnd,
|
530
|
+
LogType.groupCollapsed,
|
531
|
+
LogType.clear
|
532
|
+
]);
|
533
|
+
break;
|
534
|
+
case "verbose":
|
535
|
+
acceptedTypes = new Set([
|
536
|
+
LogType.error,
|
537
|
+
LogType.warn,
|
538
|
+
LogType.info,
|
539
|
+
LogType.log,
|
540
|
+
LogType.group,
|
541
|
+
LogType.groupEnd,
|
542
|
+
LogType.groupCollapsed,
|
543
|
+
LogType.profile,
|
544
|
+
LogType.profileEnd,
|
545
|
+
LogType.time,
|
546
|
+
LogType.status,
|
547
|
+
LogType.clear
|
548
|
+
]);
|
549
|
+
collapsedGroups = true;
|
550
|
+
break;
|
551
|
+
}
|
552
|
+
const cachedMakePathsRelative = makePathsRelative.bindContextCache(
|
553
|
+
options.context,
|
554
|
+
compilation.compiler.root
|
555
|
+
);
|
556
|
+
let depthInCollapsedGroup = 0;
|
557
|
+
for (const [origin, logEntries] of compilation.logging) {
|
558
|
+
const debugMode = loggingDebug.some(fn => fn(origin));
|
559
|
+
if (logging === false && !debugMode) continue;
|
560
|
+
/** @type {KnownStatsLoggingEntry[]} */
|
561
|
+
const groupStack = [];
|
562
|
+
/** @type {KnownStatsLoggingEntry[]} */
|
563
|
+
const rootList = [];
|
564
|
+
let currentList = rootList;
|
565
|
+
let processedLogEntries = 0;
|
566
|
+
for (const entry of logEntries) {
|
567
|
+
let type = entry.type;
|
568
|
+
if (!debugMode && !acceptedTypes.has(type)) continue;
|
569
|
+
|
570
|
+
// Expand groups in verbose and debug modes
|
571
|
+
if (
|
572
|
+
type === LogType.groupCollapsed &&
|
573
|
+
(debugMode || collapsedGroups)
|
574
|
+
)
|
575
|
+
type = LogType.group;
|
576
|
+
|
577
|
+
if (depthInCollapsedGroup === 0) {
|
578
|
+
processedLogEntries++;
|
579
|
+
}
|
580
|
+
|
581
|
+
if (type === LogType.groupEnd) {
|
582
|
+
groupStack.pop();
|
583
|
+
if (groupStack.length > 0) {
|
584
|
+
currentList = groupStack[groupStack.length - 1].children;
|
585
|
+
} else {
|
586
|
+
currentList = rootList;
|
587
|
+
}
|
588
|
+
if (depthInCollapsedGroup > 0) depthInCollapsedGroup--;
|
589
|
+
continue;
|
590
|
+
}
|
591
|
+
let message = undefined;
|
592
|
+
if (entry.type === LogType.time) {
|
593
|
+
message = `${entry.args[0]}: ${
|
594
|
+
entry.args[1] * 1000 + entry.args[2] / 1000000
|
595
|
+
} ms`;
|
596
|
+
} else if (entry.args && entry.args.length > 0) {
|
597
|
+
message = util.format(entry.args[0], ...entry.args.slice(1));
|
598
|
+
}
|
599
|
+
/** @type {KnownStatsLoggingEntry} */
|
600
|
+
const newEntry = {
|
601
|
+
...entry,
|
602
|
+
type,
|
603
|
+
message,
|
604
|
+
trace: loggingTrace ? entry.trace : undefined,
|
605
|
+
children:
|
606
|
+
type === LogType.group || type === LogType.groupCollapsed
|
607
|
+
? []
|
608
|
+
: undefined
|
609
|
+
};
|
610
|
+
currentList.push(newEntry);
|
611
|
+
if (newEntry.children) {
|
612
|
+
groupStack.push(newEntry);
|
613
|
+
currentList = newEntry.children;
|
614
|
+
if (depthInCollapsedGroup > 0) {
|
615
|
+
depthInCollapsedGroup++;
|
616
|
+
} else if (type === LogType.groupCollapsed) {
|
617
|
+
depthInCollapsedGroup = 1;
|
618
|
+
}
|
619
|
+
}
|
620
|
+
}
|
621
|
+
let name = cachedMakePathsRelative(origin).replace(/\|/g, " ");
|
622
|
+
if (name in object.logging) {
|
623
|
+
let i = 1;
|
624
|
+
while (`${name}#${i}` in object.logging) {
|
625
|
+
i++;
|
626
|
+
}
|
627
|
+
name = `${name}#${i}`;
|
628
|
+
}
|
629
|
+
object.logging[name] = {
|
630
|
+
entries: rootList,
|
631
|
+
filteredEntries: logEntries.length - processedLogEntries,
|
632
|
+
debug: debugMode
|
633
|
+
};
|
634
|
+
}
|
635
|
+
}
|
498
636
|
},
|
499
637
|
hash: (object, compilation) => {
|
500
638
|
object.hash = compilation.hash;
|
@@ -738,135 +876,6 @@ const SIMPLE_EXTRACTORS = {
|
|
738
876
|
}
|
739
877
|
}
|
740
878
|
},
|
741
|
-
logging: (object, compilation, _context, options, factory) => {
|
742
|
-
const util = require("util");
|
743
|
-
const { loggingDebug, loggingTrace, context } = options;
|
744
|
-
object.logging = {};
|
745
|
-
let acceptedTypes;
|
746
|
-
let collapsedGroups = false;
|
747
|
-
switch (options.logging) {
|
748
|
-
case "none":
|
749
|
-
acceptedTypes = new Set([]);
|
750
|
-
break;
|
751
|
-
case "error":
|
752
|
-
acceptedTypes = new Set([LogType.error]);
|
753
|
-
break;
|
754
|
-
case "warn":
|
755
|
-
acceptedTypes = new Set([LogType.error, LogType.warn]);
|
756
|
-
break;
|
757
|
-
case "info":
|
758
|
-
acceptedTypes = new Set([LogType.error, LogType.warn, LogType.info]);
|
759
|
-
break;
|
760
|
-
case "log":
|
761
|
-
acceptedTypes = new Set([
|
762
|
-
LogType.error,
|
763
|
-
LogType.warn,
|
764
|
-
LogType.info,
|
765
|
-
LogType.log,
|
766
|
-
LogType.group,
|
767
|
-
LogType.groupEnd,
|
768
|
-
LogType.groupCollapsed,
|
769
|
-
LogType.clear
|
770
|
-
]);
|
771
|
-
break;
|
772
|
-
case "verbose":
|
773
|
-
acceptedTypes = new Set([
|
774
|
-
LogType.error,
|
775
|
-
LogType.warn,
|
776
|
-
LogType.info,
|
777
|
-
LogType.log,
|
778
|
-
LogType.group,
|
779
|
-
LogType.groupEnd,
|
780
|
-
LogType.groupCollapsed,
|
781
|
-
LogType.profile,
|
782
|
-
LogType.profileEnd,
|
783
|
-
LogType.time,
|
784
|
-
LogType.status,
|
785
|
-
LogType.clear
|
786
|
-
]);
|
787
|
-
collapsedGroups = true;
|
788
|
-
break;
|
789
|
-
}
|
790
|
-
const cachedMakePathsRelative = makePathsRelative.bindContextCache(
|
791
|
-
context,
|
792
|
-
compilation.compiler.root
|
793
|
-
);
|
794
|
-
let depthInCollapsedGroup = 0;
|
795
|
-
for (const [origin, logEntries] of compilation.logging) {
|
796
|
-
const debugMode = loggingDebug.some(fn => fn(origin));
|
797
|
-
/** @type {KnownStatsLoggingEntry[]} */
|
798
|
-
const groupStack = [];
|
799
|
-
/** @type {KnownStatsLoggingEntry[]} */
|
800
|
-
const rootList = [];
|
801
|
-
let currentList = rootList;
|
802
|
-
let processedLogEntries = 0;
|
803
|
-
for (const entry of logEntries) {
|
804
|
-
let type = entry.type;
|
805
|
-
if (!debugMode && !acceptedTypes.has(type)) continue;
|
806
|
-
|
807
|
-
// Expand groups in verbose and debug modes
|
808
|
-
if (type === LogType.groupCollapsed && (debugMode || collapsedGroups))
|
809
|
-
type = LogType.group;
|
810
|
-
|
811
|
-
if (depthInCollapsedGroup === 0) {
|
812
|
-
processedLogEntries++;
|
813
|
-
}
|
814
|
-
|
815
|
-
if (type === LogType.groupEnd) {
|
816
|
-
groupStack.pop();
|
817
|
-
if (groupStack.length > 0) {
|
818
|
-
currentList = groupStack[groupStack.length - 1].children;
|
819
|
-
} else {
|
820
|
-
currentList = rootList;
|
821
|
-
}
|
822
|
-
if (depthInCollapsedGroup > 0) depthInCollapsedGroup--;
|
823
|
-
continue;
|
824
|
-
}
|
825
|
-
let message = undefined;
|
826
|
-
if (entry.type === LogType.time) {
|
827
|
-
message = `${entry.args[0]}: ${
|
828
|
-
entry.args[1] * 1000 + entry.args[2] / 1000000
|
829
|
-
} ms`;
|
830
|
-
} else if (entry.args && entry.args.length > 0) {
|
831
|
-
message = util.format(entry.args[0], ...entry.args.slice(1));
|
832
|
-
}
|
833
|
-
/** @type {KnownStatsLoggingEntry} */
|
834
|
-
const newEntry = {
|
835
|
-
...entry,
|
836
|
-
type,
|
837
|
-
message,
|
838
|
-
trace: loggingTrace ? entry.trace : undefined,
|
839
|
-
children:
|
840
|
-
type === LogType.group || type === LogType.groupCollapsed
|
841
|
-
? []
|
842
|
-
: undefined
|
843
|
-
};
|
844
|
-
currentList.push(newEntry);
|
845
|
-
if (newEntry.children) {
|
846
|
-
groupStack.push(newEntry);
|
847
|
-
currentList = newEntry.children;
|
848
|
-
if (depthInCollapsedGroup > 0) {
|
849
|
-
depthInCollapsedGroup++;
|
850
|
-
} else if (type === LogType.groupCollapsed) {
|
851
|
-
depthInCollapsedGroup = 1;
|
852
|
-
}
|
853
|
-
}
|
854
|
-
}
|
855
|
-
let name = cachedMakePathsRelative(origin).replace(/\|/g, " ");
|
856
|
-
if (name in object.logging) {
|
857
|
-
let i = 1;
|
858
|
-
while (`${name}#${i}` in object.logging) {
|
859
|
-
i++;
|
860
|
-
}
|
861
|
-
name = `${name}#${i}`;
|
862
|
-
}
|
863
|
-
object.logging[name] = {
|
864
|
-
entries: rootList,
|
865
|
-
filteredEntries: logEntries.length - processedLogEntries,
|
866
|
-
debug: debugMode
|
867
|
-
};
|
868
|
-
}
|
869
|
-
},
|
870
879
|
children: (object, compilation, context, options, factory) => {
|
871
880
|
const { type } = context;
|
872
881
|
object.children = factory.create(
|
@@ -1895,7 +1904,7 @@ const ASSETS_GROUPERS = {
|
|
1895
1904
|
}
|
1896
1905
|
};
|
1897
1906
|
|
1898
|
-
/** @type {function(
|
1907
|
+
/** @type {function("module" | "chunk" | "root-of-chunk" | "nested"): Record<string, (groupConfigs: GroupConfig[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void>} */
|
1899
1908
|
const MODULES_GROUPERS = type => ({
|
1900
1909
|
_: (groupConfigs, context, options) => {
|
1901
1910
|
const groupByFlag = (name, type, exclude) => {
|
package/lib/util/SetHelpers.js
CHANGED
@@ -73,7 +73,22 @@ const first = set => {
|
|
73
73
|
return entry.done ? undefined : entry.value;
|
74
74
|
};
|
75
75
|
|
76
|
+
/**
|
77
|
+
* @template T
|
78
|
+
* @param {Set<T>} a first
|
79
|
+
* @param {Set<T>} b second
|
80
|
+
* @returns {Set<T>} combined set, may be identical to a or b
|
81
|
+
*/
|
82
|
+
const combine = (a, b) => {
|
83
|
+
if (b.size === 0) return a;
|
84
|
+
if (a.size === 0) return b;
|
85
|
+
const set = new Set(a);
|
86
|
+
for (const item of b) set.add(item);
|
87
|
+
return set;
|
88
|
+
};
|
89
|
+
|
76
90
|
exports.intersect = intersect;
|
77
91
|
exports.isSubset = isSubset;
|
78
92
|
exports.find = find;
|
79
93
|
exports.first = first;
|
94
|
+
exports.combine = combine;
|
package/lib/util/fs.js
CHANGED
@@ -64,6 +64,8 @@ const path = require("path");
|
|
64
64
|
* @typedef {Object} Watcher
|
65
65
|
* @property {function(): void} close closes the watcher and all underlying file watchers
|
66
66
|
* @property {function(): void} pause closes the watcher, but keeps underlying file watchers alive until the next watch call
|
67
|
+
* @property {function(): Set<string>=} getAggregatedChanges get current aggregated changes that have not yet send to callback
|
68
|
+
* @property {function(): Set<string>=} getAggregatedRemovals get current aggregated removals that have not yet send to callback
|
67
69
|
* @property {function(): Map<string, FileSystemInfoEntry | "ignore">} getFileTimeInfoEntries get info about files
|
68
70
|
* @property {function(): Map<string, FileSystemInfoEntry | "ignore">} getContextTimeInfoEntries get info about directories
|
69
71
|
*/
|
package/lib/util/semver.js
CHANGED
@@ -215,11 +215,11 @@ exports.parseRange = str => {
|
|
215
215
|
|
216
216
|
/* eslint-disable eqeqeq */
|
217
217
|
const rangeToString = range => {
|
218
|
+
var fixCount = range[0];
|
219
|
+
var str = "";
|
218
220
|
if (range.length === 1) {
|
219
221
|
return "*";
|
220
|
-
} else if (
|
221
|
-
var str = "";
|
222
|
-
var fixCount = range[0];
|
222
|
+
} else if (fixCount + 0.5) {
|
223
223
|
str +=
|
224
224
|
fixCount == 0
|
225
225
|
? ">="
|
@@ -464,7 +464,7 @@ exports.versionLtRuntimeCode = runtimeTemplate =>
|
|
464
464
|
exports.rangeToStringRuntimeCode = runtimeTemplate =>
|
465
465
|
`var rangeToString = ${runtimeTemplate.basicFunction("range", [
|
466
466
|
"// see webpack/lib/util/semver.js for original code",
|
467
|
-
'if(1===range.length)return"*";if(
|
467
|
+
'var r=range[0],n="";if(1===range.length)return"*";if(r+.5){n+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var e=1,a=1;a<range.length;a++){e--,n+="u"==(typeof(t=range[a]))[0]?"-":(e>0?".":"")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?"not("+o()+")":1===t?"("+o()+" || "+o()+")":2===t?g.pop()+" "+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,"$1")}'
|
468
468
|
])}`;
|
469
469
|
//#endregion
|
470
470
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "webpack",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.24.2",
|
4
4
|
"author": "Tobias Koppers @sokra",
|
5
5
|
"description": "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
|
6
6
|
"license": "MIT",
|
@@ -14,7 +14,7 @@
|
|
14
14
|
"browserslist": "^4.14.5",
|
15
15
|
"chrome-trace-event": "^1.0.2",
|
16
16
|
"enhanced-resolve": "^5.7.0",
|
17
|
-
"es-module-lexer": "^0.
|
17
|
+
"es-module-lexer": "^0.4.0",
|
18
18
|
"eslint-scope": "^5.1.1",
|
19
19
|
"events": "^3.2.0",
|
20
20
|
"glob-to-regexp": "^0.4.1",
|
@@ -55,7 +55,7 @@
|
|
55
55
|
"eslint": "^7.14.0",
|
56
56
|
"eslint-config-prettier": "^7.0.0",
|
57
57
|
"eslint-plugin-jest": "^24.1.3",
|
58
|
-
"eslint-plugin-jsdoc": "^
|
58
|
+
"eslint-plugin-jsdoc": "^32.0.2",
|
59
59
|
"eslint-plugin-node": "^11.0.0",
|
60
60
|
"eslint-plugin-prettier": "^3.1.4",
|
61
61
|
"file-loader": "^6.0.0",
|
@@ -169,11 +169,6 @@
|
|
169
169
|
"cover:types": "node node_modules/tooling/type-coverage",
|
170
170
|
"cover:report": "istanbul report"
|
171
171
|
},
|
172
|
-
"husky": {
|
173
|
-
"hooks": {
|
174
|
-
"pre-commit": "lint-staged"
|
175
|
-
}
|
176
|
-
},
|
177
172
|
"lint-staged": {
|
178
173
|
"*.js|{lib,setup,bin,hot,tooling,schemas}/**/*.js|test/*.js|{test,examples}/**/webpack.config.js}": [
|
179
174
|
"eslint --cache"
|
@@ -13,6 +13,51 @@
|
|
13
13
|
}
|
14
14
|
]
|
15
15
|
},
|
16
|
+
"AssetFilterItemTypes": {
|
17
|
+
"description": "Filtering value, regexp or function.",
|
18
|
+
"cli": {
|
19
|
+
"helper": true
|
20
|
+
},
|
21
|
+
"anyOf": [
|
22
|
+
{
|
23
|
+
"instanceof": "RegExp",
|
24
|
+
"tsType": "RegExp"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"type": "string",
|
28
|
+
"absolutePath": false
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"instanceof": "Function",
|
32
|
+
"tsType": "((name: string, asset: import('../lib/stats/DefaultStatsFactoryPlugin').StatsAsset) => boolean)"
|
33
|
+
}
|
34
|
+
]
|
35
|
+
},
|
36
|
+
"AssetFilterTypes": {
|
37
|
+
"description": "Filtering modules.",
|
38
|
+
"cli": {
|
39
|
+
"helper": true
|
40
|
+
},
|
41
|
+
"anyOf": [
|
42
|
+
{
|
43
|
+
"type": "array",
|
44
|
+
"items": {
|
45
|
+
"description": "Rule to filter.",
|
46
|
+
"cli": {
|
47
|
+
"helper": true
|
48
|
+
},
|
49
|
+
"oneOf": [
|
50
|
+
{
|
51
|
+
"$ref": "#/definitions/AssetFilterItemTypes"
|
52
|
+
}
|
53
|
+
]
|
54
|
+
}
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"$ref": "#/definitions/AssetFilterItemTypes"
|
58
|
+
}
|
59
|
+
]
|
60
|
+
},
|
16
61
|
"AssetGeneratorDataUrl": {
|
17
62
|
"description": "The options for data url generator.",
|
18
63
|
"anyOf": [
|
@@ -1269,7 +1314,14 @@
|
|
1269
1314
|
},
|
1270
1315
|
"url": {
|
1271
1316
|
"description": "Enable/disable parsing of new URL() syntax.",
|
1272
|
-
"
|
1317
|
+
"anyOf": [
|
1318
|
+
{
|
1319
|
+
"enum": ["relative"]
|
1320
|
+
},
|
1321
|
+
{
|
1322
|
+
"type": "boolean"
|
1323
|
+
}
|
1324
|
+
]
|
1273
1325
|
},
|
1274
1326
|
"worker": {
|
1275
1327
|
"description": "Disable or configure parsing of WebWorker syntax like new Worker() or navigator.serviceWorker.register().",
|
@@ -1491,6 +1543,51 @@
|
|
1491
1543
|
"description": "Enable production optimizations or development hints.",
|
1492
1544
|
"enum": ["development", "production", "none"]
|
1493
1545
|
},
|
1546
|
+
"ModuleFilterItemTypes": {
|
1547
|
+
"description": "Filtering value, regexp or function.",
|
1548
|
+
"cli": {
|
1549
|
+
"helper": true
|
1550
|
+
},
|
1551
|
+
"anyOf": [
|
1552
|
+
{
|
1553
|
+
"instanceof": "RegExp",
|
1554
|
+
"tsType": "RegExp"
|
1555
|
+
},
|
1556
|
+
{
|
1557
|
+
"type": "string",
|
1558
|
+
"absolutePath": false
|
1559
|
+
},
|
1560
|
+
{
|
1561
|
+
"instanceof": "Function",
|
1562
|
+
"tsType": "((name: string, module: import('../lib/stats/DefaultStatsFactoryPlugin').StatsModule, type: 'module' | 'chunk' | 'root-of-chunk' | 'nested') => boolean)"
|
1563
|
+
}
|
1564
|
+
]
|
1565
|
+
},
|
1566
|
+
"ModuleFilterTypes": {
|
1567
|
+
"description": "Filtering modules.",
|
1568
|
+
"cli": {
|
1569
|
+
"helper": true
|
1570
|
+
},
|
1571
|
+
"anyOf": [
|
1572
|
+
{
|
1573
|
+
"type": "array",
|
1574
|
+
"items": {
|
1575
|
+
"description": "Rule to filter.",
|
1576
|
+
"cli": {
|
1577
|
+
"helper": true
|
1578
|
+
},
|
1579
|
+
"oneOf": [
|
1580
|
+
{
|
1581
|
+
"$ref": "#/definitions/ModuleFilterItemTypes"
|
1582
|
+
}
|
1583
|
+
]
|
1584
|
+
}
|
1585
|
+
},
|
1586
|
+
{
|
1587
|
+
"$ref": "#/definitions/ModuleFilterItemTypes"
|
1588
|
+
}
|
1589
|
+
]
|
1590
|
+
},
|
1494
1591
|
"ModuleOptions": {
|
1495
1592
|
"description": "Options affecting the normal modules (`NormalModuleFactory`).",
|
1496
1593
|
"type": "object",
|
@@ -3913,7 +4010,7 @@
|
|
3913
4010
|
"type": "boolean"
|
3914
4011
|
},
|
3915
4012
|
{
|
3916
|
-
"$ref": "#/definitions/
|
4013
|
+
"$ref": "#/definitions/ModuleFilterTypes"
|
3917
4014
|
}
|
3918
4015
|
]
|
3919
4016
|
},
|
@@ -3921,7 +4018,7 @@
|
|
3921
4018
|
"description": "Suppress assets that match the specified filters. Filters can be Strings, RegExps or Functions.",
|
3922
4019
|
"oneOf": [
|
3923
4020
|
{
|
3924
|
-
"$ref": "#/definitions/
|
4021
|
+
"$ref": "#/definitions/AssetFilterTypes"
|
3925
4022
|
}
|
3926
4023
|
]
|
3927
4024
|
},
|
@@ -3932,7 +4029,7 @@
|
|
3932
4029
|
"type": "boolean"
|
3933
4030
|
},
|
3934
4031
|
{
|
3935
|
-
"$ref": "#/definitions/
|
4032
|
+
"$ref": "#/definitions/ModuleFilterTypes"
|
3936
4033
|
}
|
3937
4034
|
]
|
3938
4035
|
},
|
@@ -4120,7 +4217,7 @@
|
|
4120
4217
|
"description": "Suppress listing warnings that match the specified filters (they will still be counted). Filters can be Strings, RegExps or Functions.",
|
4121
4218
|
"oneOf": [
|
4122
4219
|
{
|
4123
|
-
"$ref": "#/definitions/
|
4220
|
+
"$ref": "#/definitions/WarningFilterTypes"
|
4124
4221
|
}
|
4125
4222
|
]
|
4126
4223
|
}
|
@@ -4183,6 +4280,51 @@
|
|
4183
4280
|
"type": "string",
|
4184
4281
|
"minLength": 1
|
4185
4282
|
},
|
4283
|
+
"WarningFilterItemTypes": {
|
4284
|
+
"description": "Filtering value, regexp or function.",
|
4285
|
+
"cli": {
|
4286
|
+
"helper": true
|
4287
|
+
},
|
4288
|
+
"anyOf": [
|
4289
|
+
{
|
4290
|
+
"instanceof": "RegExp",
|
4291
|
+
"tsType": "RegExp"
|
4292
|
+
},
|
4293
|
+
{
|
4294
|
+
"type": "string",
|
4295
|
+
"absolutePath": false
|
4296
|
+
},
|
4297
|
+
{
|
4298
|
+
"instanceof": "Function",
|
4299
|
+
"tsType": "((warning: import('../lib/stats/DefaultStatsFactoryPlugin').StatsError, value: string) => boolean)"
|
4300
|
+
}
|
4301
|
+
]
|
4302
|
+
},
|
4303
|
+
"WarningFilterTypes": {
|
4304
|
+
"description": "Filtering warnings.",
|
4305
|
+
"cli": {
|
4306
|
+
"helper": true
|
4307
|
+
},
|
4308
|
+
"anyOf": [
|
4309
|
+
{
|
4310
|
+
"type": "array",
|
4311
|
+
"items": {
|
4312
|
+
"description": "Rule to filter.",
|
4313
|
+
"cli": {
|
4314
|
+
"helper": true
|
4315
|
+
},
|
4316
|
+
"oneOf": [
|
4317
|
+
{
|
4318
|
+
"$ref": "#/definitions/WarningFilterItemTypes"
|
4319
|
+
}
|
4320
|
+
]
|
4321
|
+
}
|
4322
|
+
},
|
4323
|
+
{
|
4324
|
+
"$ref": "#/definitions/WarningFilterItemTypes"
|
4325
|
+
}
|
4326
|
+
]
|
4327
|
+
},
|
4186
4328
|
"WasmLoading": {
|
4187
4329
|
"description": "The method of loading WebAssembly Modules (methods included by default are 'fetch' (web/WebWorker), 'async-node' (node.js), but others might be added by plugins).",
|
4188
4330
|
"anyOf": [
|