webpack 4.15.0 → 4.16.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.
- package/LICENSE +20 -20
- package/README.md +761 -758
- package/SECURITY.md +9 -9
- package/buildin/amd-define.js +3 -3
- package/buildin/amd-options.js +2 -2
- package/buildin/global.js +20 -20
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/buildin/system.js +7 -7
- package/hot/dev-server.js +61 -61
- package/hot/emitter.js +2 -2
- package/hot/log-apply-result.js +44 -44
- package/hot/log.js +45 -45
- package/hot/only-dev-server.js +105 -105
- package/hot/poll.js +40 -37
- package/hot/signal.js +62 -62
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +87 -87
- package/lib/AsyncDependencyToInitialChunkError.js +31 -31
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +117 -117
- package/lib/BasicEvaluatedExpression.js +211 -211
- package/lib/CachePlugin.js +102 -102
- package/lib/CaseSensitiveModulesWarning.js +67 -67
- package/lib/Chunk.js +833 -811
- package/lib/ChunkGroup.js +4 -4
- package/lib/ChunkRenderError.js +32 -32
- package/lib/CommentCompilationWarning.js +2 -2
- package/lib/CompatibilityPlugin.js +70 -70
- package/lib/Compilation.js +46 -15
- package/lib/ConcurrentCompilationError.js +19 -19
- package/lib/ConstPlugin.js +258 -258
- package/lib/ContextExclusionPlugin.js +28 -17
- package/lib/ContextModule.js +844 -739
- package/lib/ContextModuleFactory.js +262 -256
- package/lib/ContextReplacementPlugin.js +133 -133
- package/lib/DefinePlugin.js +49 -0
- package/lib/DelegatedModule.js +5 -0
- package/lib/DelegatedModuleFactoryPlugin.js +95 -89
- package/lib/DelegatedPlugin.js +39 -39
- package/lib/DependenciesBlock.js +1 -1
- package/lib/Dependency.js +10 -4
- package/lib/DllModule.js +60 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/DllPlugin.js +44 -44
- package/lib/DllReferencePlugin.js +132 -84
- package/lib/EntryModuleNotFoundError.js +21 -21
- package/lib/Entrypoint.js +54 -54
- package/lib/EnvironmentPlugin.js +72 -65
- package/lib/ErrorHelpers.js +60 -60
- package/lib/EvalDevToolModulePlugin.js +27 -27
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +115 -115
- package/lib/EvalSourceMapDevToolPlugin.js +41 -41
- package/lib/ExportPropertyMainTemplatePlugin.js +53 -53
- package/lib/ExternalModule.js +165 -159
- package/lib/ExternalsPlugin.js +23 -23
- package/lib/FlagDependencyExportsPlugin.js +146 -146
- package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
- package/lib/FunctionModuleTemplatePlugin.js +100 -100
- package/lib/Generator.js +60 -52
- package/lib/HarmonyLinkingError.js +17 -17
- package/lib/HashedModuleIdsPlugin.js +53 -53
- package/lib/HotModuleReplacementPlugin.js +411 -413
- package/lib/IgnorePlugin.js +90 -90
- package/lib/JavascriptGenerator.js +229 -229
- package/lib/JavascriptModulesPlugin.js +179 -179
- package/lib/JsonGenerator.js +55 -55
- package/lib/JsonModulesPlugin.js +30 -30
- package/lib/JsonParser.js +27 -27
- package/lib/LibManifestPlugin.js +86 -86
- package/lib/LibraryTemplatePlugin.js +153 -153
- package/lib/LoaderOptionsPlugin.js +53 -53
- package/lib/LoaderTargetPlugin.js +24 -24
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/Module.js +431 -391
- package/lib/ModuleBuildError.js +52 -52
- package/lib/ModuleDependencyError.js +35 -35
- package/lib/ModuleDependencyWarning.js +25 -25
- package/lib/ModuleError.js +36 -36
- package/lib/ModuleFilenameHelpers.js +178 -178
- package/lib/ModuleNotFoundError.js +23 -23
- package/lib/ModuleParseError.js +57 -57
- package/lib/ModuleTemplate.js +93 -93
- package/lib/ModuleWarning.js +36 -36
- package/lib/MultiCompiler.js +283 -283
- package/lib/MultiModule.js +87 -81
- package/lib/MultiModuleFactory.js +23 -23
- package/lib/MultiStats.js +92 -92
- package/lib/MultiWatching.js +38 -38
- package/lib/NamedChunksPlugin.js +29 -29
- package/lib/NamedModulesPlugin.js +57 -57
- package/lib/NoEmitOnErrorsPlugin.js +20 -20
- package/lib/NoModeWarning.js +23 -23
- package/lib/NodeStuffPlugin.js +197 -179
- package/lib/NormalModule.js +542 -536
- package/lib/NormalModuleFactory.js +526 -526
- package/lib/NormalModuleReplacementPlugin.js +51 -51
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/OptionsDefaulter.js +84 -84
- package/lib/Parser.js +2202 -2193
- package/lib/ParserHelpers.js +103 -103
- package/lib/PrefetchPlugin.js +37 -37
- package/lib/ProgressPlugin.js +246 -246
- package/lib/ProvidePlugin.js +86 -86
- package/lib/RawModule.js +56 -56
- package/lib/RecordIdsPlugin.js +230 -230
- package/lib/RemovedPluginError.js +11 -11
- package/lib/RequestShortener.js +83 -83
- package/lib/RequireJsStuffPlugin.js +69 -69
- package/lib/ResolverFactory.js +64 -64
- package/lib/RuntimeTemplate.js +12 -0
- package/lib/SetVarMainTemplatePlugin.js +69 -69
- package/lib/SingleEntryPlugin.js +6 -1
- package/lib/SizeFormatHelpers.js +24 -24
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
- package/lib/SourceMapDevToolPlugin.js +301 -301
- package/lib/Stats.js +28 -5
- package/lib/TemplatedPathPlugin.js +173 -173
- package/lib/UnsupportedFeatureWarning.js +22 -22
- package/lib/UseStrictPlugin.js +54 -54
- package/lib/WarnCaseSensitiveModulesPlugin.js +37 -37
- package/lib/WarnNoModeSetPlugin.js +17 -17
- package/lib/WatchIgnorePlugin.js +100 -100
- package/lib/Watching.js +194 -194
- package/lib/WebpackOptionsApply.js +92 -10
- package/lib/WebpackOptionsDefaulter.js +368 -354
- package/lib/debug/ProfilingPlugin.js +430 -430
- package/lib/dependencies/AMDPlugin.js +250 -250
- package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependency.js +135 -135
- package/lib/dependencies/AMDRequireItemDependency.js +22 -22
- package/lib/dependencies/CommonJsPlugin.js +161 -161
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +6 -0
- package/lib/dependencies/ConstDependency.js +33 -33
- package/lib/dependencies/ContextDependency.js +68 -68
- package/lib/dependencies/ContextDependencyHelpers.js +142 -142
- package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/CriticalDependencyWarning.js +20 -20
- package/lib/dependencies/DelegatedSourceDependency.js +18 -18
- package/lib/dependencies/DllEntryDependency.js +20 -20
- package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
- package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -92
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
- package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +2 -1
- package/lib/dependencies/HarmonyImportDependency.js +109 -109
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +222 -222
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +167 -167
- package/lib/dependencies/HarmonyInitDependency.js +60 -60
- package/lib/dependencies/HarmonyModulesPlugin.js +146 -146
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -26
- package/lib/dependencies/ImportContextDependency.js +23 -23
- package/lib/dependencies/ImportDependenciesBlock.js +18 -18
- package/lib/dependencies/ImportDependency.js +34 -34
- package/lib/dependencies/ImportEagerDependency.js +32 -32
- package/lib/dependencies/ImportParserPlugin.js +263 -263
- package/lib/dependencies/ImportPlugin.js +82 -82
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/LoaderPlugin.js +18 -1
- package/lib/dependencies/LocalModule.js +23 -23
- package/lib/dependencies/LocalModulesHelpers.js +52 -52
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
- package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
- package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/PrefetchDependency.js +18 -18
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
- package/lib/dependencies/RequireContextPlugin.js +143 -143
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -116
- package/lib/dependencies/RequireEnsureDependency.js +58 -58
- package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
- package/lib/dependencies/RequireEnsurePlugin.js +74 -74
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
- package/lib/dependencies/RequireIncludePlugin.js +61 -61
- package/lib/dependencies/RequireResolveContextDependency.js +23 -23
- package/lib/dependencies/RequireResolveDependency.js +22 -22
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SystemPlugin.js +125 -125
- package/lib/dependencies/UnsupportedDependency.js +27 -27
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +29 -29
- package/lib/dependencies/WebAssemblyImportDependency.js +48 -48
- package/lib/dependencies/WebpackMissingModule.js +20 -20
- package/lib/formatLocation.js +75 -61
- package/lib/node/NodeChunkTemplatePlugin.js +31 -31
- package/lib/node/NodeEnvironmentPlugin.js +28 -28
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -36
- package/lib/node/NodeMainTemplate.runtime.js +27 -27
- package/lib/node/NodeMainTemplatePlugin.js +323 -323
- package/lib/node/NodeOutputFileSystem.js +22 -22
- package/lib/node/NodeSourcePlugin.js +144 -144
- package/lib/node/NodeTargetPlugin.js +18 -18
- package/lib/node/NodeTemplatePlugin.js +31 -31
- package/lib/node/NodeWatchFileSystem.js +99 -99
- package/lib/node/ReadFileCompileWasmTemplatePlugin.js +61 -61
- package/lib/optimize/AggressiveMergingPlugin.js +87 -87
- package/lib/optimize/AggressiveSplittingPlugin.js +287 -287
- package/lib/optimize/ConcatenatedModule.js +5 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -70
- package/lib/optimize/FlagIncludedChunksPlugin.js +99 -99
- package/lib/optimize/LimitChunkCountPlugin.js +66 -66
- package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -78
- package/lib/optimize/MinChunkSizePlugin.js +77 -77
- package/lib/optimize/NaturalChunkOrderPlugin.js +41 -0
- package/lib/optimize/OccurrenceChunkOrderPlugin.js +61 -0
- package/lib/optimize/OccurrenceModuleOrderPlugin.js +103 -0
- package/lib/optimize/OccurrenceOrderPlugin.js +135 -133
- package/lib/optimize/RemoveEmptyChunksPlugin.js +42 -42
- package/lib/optimize/RemoveParentModulesPlugin.js +127 -127
- package/lib/optimize/RuntimeChunkPlugin.js +41 -41
- package/lib/optimize/SideEffectsFlagPlugin.js +168 -168
- package/lib/optimize/SplitChunksPlugin.js +866 -850
- package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +30 -30
- package/lib/performance/NoAsyncChunksWarning.js +21 -21
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/SortableSet.js +1 -0
- package/lib/util/StackedSetMap.js +144 -135
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/cachedMerge.js +35 -35
- package/lib/util/deterministicGrouping.js +251 -251
- package/lib/util/identifier.js +103 -103
- package/lib/util/objectToMap.js +16 -16
- package/lib/validateSchema.js +67 -67
- package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +17 -17
- package/lib/wasm/WasmFinalizeExportsPlugin.js +1 -1
- package/lib/wasm/WebAssemblyGenerator.js +16 -2
- package/lib/wasm/WebAssemblyJavascriptGenerator.js +147 -133
- package/lib/wasm/WebAssemblyParser.js +174 -174
- package/lib/wasm/WebAssemblyUtils.js +59 -59
- package/lib/web/FetchCompileWasmTemplatePlugin.js +37 -37
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplate.runtime.js +65 -65
- package/lib/web/JsonpMainTemplatePlugin.js +1 -1
- package/lib/web/JsonpTemplatePlugin.js +23 -23
- package/lib/web/WebEnvironmentPlugin.js +18 -18
- package/lib/webpack.js +5 -0
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -65
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +196 -196
- package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
- package/package.json +22 -13
- package/schemas/WebpackOptions.json +2062 -2036
- package/schemas/ajv.absolutePath.js +55 -55
- package/schemas/plugins/BannerPlugin.json +96 -96
- package/schemas/plugins/DllPlugin.json +32 -32
- package/schemas/plugins/DllReferencePlugin.json +99 -99
- package/schemas/plugins/HashedModuleIdsPlugin.json +24 -24
- package/schemas/plugins/LoaderOptionsPlugin.json +26 -26
- package/schemas/plugins/SourceMapDevToolPlugin.json +187 -187
- package/schemas/plugins/WatchIgnorePlugin.json +16 -16
- package/schemas/plugins/debug/ProfilingPlugin.json +12 -12
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +22 -22
- package/schemas/plugins/optimize/LimitChunkCountPlugin.json +15 -15
- package/schemas/plugins/optimize/MinChunkSizePlugin.json +13 -13
- package/schemas/plugins/optimize/OccurrenceOrderChunkIdsPlugin.json +10 -0
- package/schemas/plugins/optimize/OccurrenceOrderModuleIdsPlugin.json +10 -0
@@ -1,146 +1,146 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
|
7
|
-
const HarmonyInitDependency = require("./HarmonyInitDependency");
|
8
|
-
const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
|
9
|
-
const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency");
|
10
|
-
const HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
|
11
|
-
const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
|
12
|
-
const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
|
13
|
-
const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
|
14
|
-
const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
|
15
|
-
const HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
|
16
|
-
|
17
|
-
const NullFactory = require("../NullFactory");
|
18
|
-
|
19
|
-
const HarmonyDetectionParserPlugin = require("./HarmonyDetectionParserPlugin");
|
20
|
-
const HarmonyImportDependencyParserPlugin = require("./HarmonyImportDependencyParserPlugin");
|
21
|
-
const HarmonyExportDependencyParserPlugin = require("./HarmonyExportDependencyParserPlugin");
|
22
|
-
const HarmonyTopLevelThisParserPlugin = require("./HarmonyTopLevelThisParserPlugin");
|
23
|
-
|
24
|
-
class HarmonyModulesPlugin {
|
25
|
-
constructor(options) {
|
26
|
-
this.options = options;
|
27
|
-
}
|
28
|
-
|
29
|
-
apply(compiler) {
|
30
|
-
compiler.hooks.compilation.tap(
|
31
|
-
"HarmonyModulesPlugin",
|
32
|
-
(compilation, { normalModuleFactory }) => {
|
33
|
-
compilation.dependencyFactories.set(
|
34
|
-
HarmonyCompatibilityDependency,
|
35
|
-
new NullFactory()
|
36
|
-
);
|
37
|
-
compilation.dependencyTemplates.set(
|
38
|
-
HarmonyCompatibilityDependency,
|
39
|
-
new HarmonyCompatibilityDependency.Template()
|
40
|
-
);
|
41
|
-
|
42
|
-
compilation.dependencyFactories.set(
|
43
|
-
HarmonyInitDependency,
|
44
|
-
new NullFactory()
|
45
|
-
);
|
46
|
-
compilation.dependencyTemplates.set(
|
47
|
-
HarmonyInitDependency,
|
48
|
-
new HarmonyInitDependency.Template()
|
49
|
-
);
|
50
|
-
|
51
|
-
compilation.dependencyFactories.set(
|
52
|
-
HarmonyImportSideEffectDependency,
|
53
|
-
normalModuleFactory
|
54
|
-
);
|
55
|
-
compilation.dependencyTemplates.set(
|
56
|
-
HarmonyImportSideEffectDependency,
|
57
|
-
new HarmonyImportSideEffectDependency.Template()
|
58
|
-
);
|
59
|
-
|
60
|
-
compilation.dependencyFactories.set(
|
61
|
-
HarmonyImportSpecifierDependency,
|
62
|
-
normalModuleFactory
|
63
|
-
);
|
64
|
-
compilation.dependencyTemplates.set(
|
65
|
-
HarmonyImportSpecifierDependency,
|
66
|
-
new HarmonyImportSpecifierDependency.Template()
|
67
|
-
);
|
68
|
-
|
69
|
-
compilation.dependencyFactories.set(
|
70
|
-
HarmonyExportHeaderDependency,
|
71
|
-
new NullFactory()
|
72
|
-
);
|
73
|
-
compilation.dependencyTemplates.set(
|
74
|
-
HarmonyExportHeaderDependency,
|
75
|
-
new HarmonyExportHeaderDependency.Template()
|
76
|
-
);
|
77
|
-
|
78
|
-
compilation.dependencyFactories.set(
|
79
|
-
HarmonyExportExpressionDependency,
|
80
|
-
new NullFactory()
|
81
|
-
);
|
82
|
-
compilation.dependencyTemplates.set(
|
83
|
-
HarmonyExportExpressionDependency,
|
84
|
-
new HarmonyExportExpressionDependency.Template()
|
85
|
-
);
|
86
|
-
|
87
|
-
compilation.dependencyFactories.set(
|
88
|
-
HarmonyExportSpecifierDependency,
|
89
|
-
new NullFactory()
|
90
|
-
);
|
91
|
-
compilation.dependencyTemplates.set(
|
92
|
-
HarmonyExportSpecifierDependency,
|
93
|
-
new HarmonyExportSpecifierDependency.Template()
|
94
|
-
);
|
95
|
-
|
96
|
-
compilation.dependencyFactories.set(
|
97
|
-
HarmonyExportImportedSpecifierDependency,
|
98
|
-
normalModuleFactory
|
99
|
-
);
|
100
|
-
compilation.dependencyTemplates.set(
|
101
|
-
HarmonyExportImportedSpecifierDependency,
|
102
|
-
new HarmonyExportImportedSpecifierDependency.Template()
|
103
|
-
);
|
104
|
-
|
105
|
-
compilation.dependencyFactories.set(
|
106
|
-
HarmonyAcceptDependency,
|
107
|
-
new NullFactory()
|
108
|
-
);
|
109
|
-
compilation.dependencyTemplates.set(
|
110
|
-
HarmonyAcceptDependency,
|
111
|
-
new HarmonyAcceptDependency.Template()
|
112
|
-
);
|
113
|
-
|
114
|
-
compilation.dependencyFactories.set(
|
115
|
-
HarmonyAcceptImportDependency,
|
116
|
-
normalModuleFactory
|
117
|
-
);
|
118
|
-
compilation.dependencyTemplates.set(
|
119
|
-
HarmonyAcceptImportDependency,
|
120
|
-
new HarmonyAcceptImportDependency.Template()
|
121
|
-
);
|
122
|
-
|
123
|
-
const handler = (parser, parserOptions) => {
|
124
|
-
if (
|
125
|
-
typeof parserOptions.harmony !== "undefined" &&
|
126
|
-
!parserOptions.harmony
|
127
|
-
)
|
128
|
-
return;
|
129
|
-
|
130
|
-
new HarmonyDetectionParserPlugin().apply(parser);
|
131
|
-
new HarmonyImportDependencyParserPlugin(this.options).apply(parser);
|
132
|
-
new HarmonyExportDependencyParserPlugin(this.options).apply(parser);
|
133
|
-
new HarmonyTopLevelThisParserPlugin().apply(parser);
|
134
|
-
};
|
135
|
-
|
136
|
-
normalModuleFactory.hooks.parser
|
137
|
-
.for("javascript/auto")
|
138
|
-
.tap("HarmonyModulesPlugin", handler);
|
139
|
-
normalModuleFactory.hooks.parser
|
140
|
-
.for("javascript/esm")
|
141
|
-
.tap("HarmonyModulesPlugin", handler);
|
142
|
-
}
|
143
|
-
);
|
144
|
-
}
|
145
|
-
}
|
146
|
-
module.exports = HarmonyModulesPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
|
7
|
+
const HarmonyInitDependency = require("./HarmonyInitDependency");
|
8
|
+
const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
|
9
|
+
const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency");
|
10
|
+
const HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
|
11
|
+
const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
|
12
|
+
const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
|
13
|
+
const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
|
14
|
+
const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
|
15
|
+
const HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
|
16
|
+
|
17
|
+
const NullFactory = require("../NullFactory");
|
18
|
+
|
19
|
+
const HarmonyDetectionParserPlugin = require("./HarmonyDetectionParserPlugin");
|
20
|
+
const HarmonyImportDependencyParserPlugin = require("./HarmonyImportDependencyParserPlugin");
|
21
|
+
const HarmonyExportDependencyParserPlugin = require("./HarmonyExportDependencyParserPlugin");
|
22
|
+
const HarmonyTopLevelThisParserPlugin = require("./HarmonyTopLevelThisParserPlugin");
|
23
|
+
|
24
|
+
class HarmonyModulesPlugin {
|
25
|
+
constructor(options) {
|
26
|
+
this.options = options;
|
27
|
+
}
|
28
|
+
|
29
|
+
apply(compiler) {
|
30
|
+
compiler.hooks.compilation.tap(
|
31
|
+
"HarmonyModulesPlugin",
|
32
|
+
(compilation, { normalModuleFactory }) => {
|
33
|
+
compilation.dependencyFactories.set(
|
34
|
+
HarmonyCompatibilityDependency,
|
35
|
+
new NullFactory()
|
36
|
+
);
|
37
|
+
compilation.dependencyTemplates.set(
|
38
|
+
HarmonyCompatibilityDependency,
|
39
|
+
new HarmonyCompatibilityDependency.Template()
|
40
|
+
);
|
41
|
+
|
42
|
+
compilation.dependencyFactories.set(
|
43
|
+
HarmonyInitDependency,
|
44
|
+
new NullFactory()
|
45
|
+
);
|
46
|
+
compilation.dependencyTemplates.set(
|
47
|
+
HarmonyInitDependency,
|
48
|
+
new HarmonyInitDependency.Template()
|
49
|
+
);
|
50
|
+
|
51
|
+
compilation.dependencyFactories.set(
|
52
|
+
HarmonyImportSideEffectDependency,
|
53
|
+
normalModuleFactory
|
54
|
+
);
|
55
|
+
compilation.dependencyTemplates.set(
|
56
|
+
HarmonyImportSideEffectDependency,
|
57
|
+
new HarmonyImportSideEffectDependency.Template()
|
58
|
+
);
|
59
|
+
|
60
|
+
compilation.dependencyFactories.set(
|
61
|
+
HarmonyImportSpecifierDependency,
|
62
|
+
normalModuleFactory
|
63
|
+
);
|
64
|
+
compilation.dependencyTemplates.set(
|
65
|
+
HarmonyImportSpecifierDependency,
|
66
|
+
new HarmonyImportSpecifierDependency.Template()
|
67
|
+
);
|
68
|
+
|
69
|
+
compilation.dependencyFactories.set(
|
70
|
+
HarmonyExportHeaderDependency,
|
71
|
+
new NullFactory()
|
72
|
+
);
|
73
|
+
compilation.dependencyTemplates.set(
|
74
|
+
HarmonyExportHeaderDependency,
|
75
|
+
new HarmonyExportHeaderDependency.Template()
|
76
|
+
);
|
77
|
+
|
78
|
+
compilation.dependencyFactories.set(
|
79
|
+
HarmonyExportExpressionDependency,
|
80
|
+
new NullFactory()
|
81
|
+
);
|
82
|
+
compilation.dependencyTemplates.set(
|
83
|
+
HarmonyExportExpressionDependency,
|
84
|
+
new HarmonyExportExpressionDependency.Template()
|
85
|
+
);
|
86
|
+
|
87
|
+
compilation.dependencyFactories.set(
|
88
|
+
HarmonyExportSpecifierDependency,
|
89
|
+
new NullFactory()
|
90
|
+
);
|
91
|
+
compilation.dependencyTemplates.set(
|
92
|
+
HarmonyExportSpecifierDependency,
|
93
|
+
new HarmonyExportSpecifierDependency.Template()
|
94
|
+
);
|
95
|
+
|
96
|
+
compilation.dependencyFactories.set(
|
97
|
+
HarmonyExportImportedSpecifierDependency,
|
98
|
+
normalModuleFactory
|
99
|
+
);
|
100
|
+
compilation.dependencyTemplates.set(
|
101
|
+
HarmonyExportImportedSpecifierDependency,
|
102
|
+
new HarmonyExportImportedSpecifierDependency.Template()
|
103
|
+
);
|
104
|
+
|
105
|
+
compilation.dependencyFactories.set(
|
106
|
+
HarmonyAcceptDependency,
|
107
|
+
new NullFactory()
|
108
|
+
);
|
109
|
+
compilation.dependencyTemplates.set(
|
110
|
+
HarmonyAcceptDependency,
|
111
|
+
new HarmonyAcceptDependency.Template()
|
112
|
+
);
|
113
|
+
|
114
|
+
compilation.dependencyFactories.set(
|
115
|
+
HarmonyAcceptImportDependency,
|
116
|
+
normalModuleFactory
|
117
|
+
);
|
118
|
+
compilation.dependencyTemplates.set(
|
119
|
+
HarmonyAcceptImportDependency,
|
120
|
+
new HarmonyAcceptImportDependency.Template()
|
121
|
+
);
|
122
|
+
|
123
|
+
const handler = (parser, parserOptions) => {
|
124
|
+
if (
|
125
|
+
typeof parserOptions.harmony !== "undefined" &&
|
126
|
+
!parserOptions.harmony
|
127
|
+
)
|
128
|
+
return;
|
129
|
+
|
130
|
+
new HarmonyDetectionParserPlugin().apply(parser);
|
131
|
+
new HarmonyImportDependencyParserPlugin(this.options).apply(parser);
|
132
|
+
new HarmonyExportDependencyParserPlugin(this.options).apply(parser);
|
133
|
+
new HarmonyTopLevelThisParserPlugin().apply(parser);
|
134
|
+
};
|
135
|
+
|
136
|
+
normalModuleFactory.hooks.parser
|
137
|
+
.for("javascript/auto")
|
138
|
+
.tap("HarmonyModulesPlugin", handler);
|
139
|
+
normalModuleFactory.hooks.parser
|
140
|
+
.for("javascript/esm")
|
141
|
+
.tap("HarmonyModulesPlugin", handler);
|
142
|
+
}
|
143
|
+
);
|
144
|
+
}
|
145
|
+
}
|
146
|
+
module.exports = HarmonyModulesPlugin;
|
@@ -1,26 +1,26 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Florent Cailhol @ooflorent
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const ConstDependency = require("./ConstDependency");
|
8
|
-
|
9
|
-
class HarmonyTopLevelThisParserPlugin {
|
10
|
-
apply(parser) {
|
11
|
-
parser.hooks.expression
|
12
|
-
.for("this")
|
13
|
-
.tap("HarmonyTopLevelThisParserPlugin", node => {
|
14
|
-
if (!parser.scope.topLevelScope) return;
|
15
|
-
const module = parser.state.module;
|
16
|
-
const isHarmony = !!(module.buildMeta && module.buildMeta.exportsType);
|
17
|
-
if (isHarmony) {
|
18
|
-
const dep = new ConstDependency("undefined", node.range, false);
|
19
|
-
dep.loc = node.loc;
|
20
|
-
parser.state.current.addDependency(dep);
|
21
|
-
}
|
22
|
-
});
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
module.exports = HarmonyTopLevelThisParserPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Florent Cailhol @ooflorent
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const ConstDependency = require("./ConstDependency");
|
8
|
+
|
9
|
+
class HarmonyTopLevelThisParserPlugin {
|
10
|
+
apply(parser) {
|
11
|
+
parser.hooks.expression
|
12
|
+
.for("this")
|
13
|
+
.tap("HarmonyTopLevelThisParserPlugin", node => {
|
14
|
+
if (!parser.scope.topLevelScope) return;
|
15
|
+
const module = parser.state.module;
|
16
|
+
const isHarmony = !!(module.buildMeta && module.buildMeta.exportsType);
|
17
|
+
if (isHarmony) {
|
18
|
+
const dep = new ConstDependency("undefined", node.range, false);
|
19
|
+
dep.loc = node.loc;
|
20
|
+
parser.state.current.addDependency(dep);
|
21
|
+
}
|
22
|
+
});
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
module.exports = HarmonyTopLevelThisParserPlugin;
|
@@ -1,23 +1,23 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ContextDependency = require("./ContextDependency");
|
7
|
-
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
8
|
-
|
9
|
-
class ImportContextDependency extends ContextDependency {
|
10
|
-
constructor(options, range, valueRange) {
|
11
|
-
super(options);
|
12
|
-
this.range = range;
|
13
|
-
this.valueRange = valueRange;
|
14
|
-
}
|
15
|
-
|
16
|
-
get type() {
|
17
|
-
return `import() context ${this.options.mode}`;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
ImportContextDependency.Template = ContextDependencyTemplateAsRequireCall;
|
22
|
-
|
23
|
-
module.exports = ImportContextDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ContextDependency = require("./ContextDependency");
|
7
|
+
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
8
|
+
|
9
|
+
class ImportContextDependency extends ContextDependency {
|
10
|
+
constructor(options, range, valueRange) {
|
11
|
+
super(options);
|
12
|
+
this.range = range;
|
13
|
+
this.valueRange = valueRange;
|
14
|
+
}
|
15
|
+
|
16
|
+
get type() {
|
17
|
+
return `import() context ${this.options.mode}`;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
ImportContextDependency.Template = ContextDependencyTemplateAsRequireCall;
|
22
|
+
|
23
|
+
module.exports = ImportContextDependency;
|
@@ -1,18 +1,18 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
7
|
-
const ImportDependency = require("./ImportDependency");
|
8
|
-
|
9
|
-
module.exports = class ImportDependenciesBlock extends AsyncDependenciesBlock {
|
10
|
-
// TODO webpack 5 reorganize arguments
|
11
|
-
constructor(request, range, groupOptions, module, loc, originModule) {
|
12
|
-
super(groupOptions, module, loc, request);
|
13
|
-
this.range = range;
|
14
|
-
const dep = new ImportDependency(request, originModule, this);
|
15
|
-
dep.loc = loc;
|
16
|
-
this.addDependency(dep);
|
17
|
-
}
|
18
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
7
|
+
const ImportDependency = require("./ImportDependency");
|
8
|
+
|
9
|
+
module.exports = class ImportDependenciesBlock extends AsyncDependenciesBlock {
|
10
|
+
// TODO webpack 5 reorganize arguments
|
11
|
+
constructor(request, range, groupOptions, module, loc, originModule) {
|
12
|
+
super(groupOptions, module, loc, request);
|
13
|
+
this.range = range;
|
14
|
+
const dep = new ImportDependency(request, originModule, this);
|
15
|
+
dep.loc = loc;
|
16
|
+
this.addDependency(dep);
|
17
|
+
}
|
18
|
+
};
|
@@ -1,34 +1,34 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ModuleDependency = require("./ModuleDependency");
|
7
|
-
|
8
|
-
class ImportDependency extends ModuleDependency {
|
9
|
-
constructor(request, originModule, block) {
|
10
|
-
super(request);
|
11
|
-
this.originModule = originModule;
|
12
|
-
this.block = block;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "import()";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
ImportDependency.Template = class ImportDependencyTemplate {
|
21
|
-
apply(dep, source, runtime) {
|
22
|
-
const content = runtime.moduleNamespacePromise({
|
23
|
-
block: dep.block,
|
24
|
-
module: dep.module,
|
25
|
-
request: dep.request,
|
26
|
-
strict: dep.originModule.buildMeta.strictHarmonyModule,
|
27
|
-
message: "import()"
|
28
|
-
});
|
29
|
-
|
30
|
-
source.replace(dep.block.range[0], dep.block.range[1] - 1, content);
|
31
|
-
}
|
32
|
-
};
|
33
|
-
|
34
|
-
module.exports = ImportDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ModuleDependency = require("./ModuleDependency");
|
7
|
+
|
8
|
+
class ImportDependency extends ModuleDependency {
|
9
|
+
constructor(request, originModule, block) {
|
10
|
+
super(request);
|
11
|
+
this.originModule = originModule;
|
12
|
+
this.block = block;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "import()";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
ImportDependency.Template = class ImportDependencyTemplate {
|
21
|
+
apply(dep, source, runtime) {
|
22
|
+
const content = runtime.moduleNamespacePromise({
|
23
|
+
block: dep.block,
|
24
|
+
module: dep.module,
|
25
|
+
request: dep.request,
|
26
|
+
strict: dep.originModule.buildMeta.strictHarmonyModule,
|
27
|
+
message: "import()"
|
28
|
+
});
|
29
|
+
|
30
|
+
source.replace(dep.block.range[0], dep.block.range[1] - 1, content);
|
31
|
+
}
|
32
|
+
};
|
33
|
+
|
34
|
+
module.exports = ImportDependency;
|
@@ -1,32 +1,32 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ModuleDependency = require("./ModuleDependency");
|
7
|
-
|
8
|
-
class ImportEagerDependency extends ModuleDependency {
|
9
|
-
constructor(request, originModule, range) {
|
10
|
-
super(request);
|
11
|
-
this.originModule = originModule;
|
12
|
-
this.range = range;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "import() eager";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
ImportEagerDependency.Template = class ImportEagerDependencyTemplate {
|
21
|
-
apply(dep, source, runtime) {
|
22
|
-
const content = runtime.moduleNamespacePromise({
|
23
|
-
module: dep.module,
|
24
|
-
request: dep.request,
|
25
|
-
strict: dep.originModule.buildMeta.strictHarmonyModule,
|
26
|
-
message: "import() eager"
|
27
|
-
});
|
28
|
-
source.replace(dep.range[0], dep.range[1] - 1, content);
|
29
|
-
}
|
30
|
-
};
|
31
|
-
|
32
|
-
module.exports = ImportEagerDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ModuleDependency = require("./ModuleDependency");
|
7
|
+
|
8
|
+
class ImportEagerDependency extends ModuleDependency {
|
9
|
+
constructor(request, originModule, range) {
|
10
|
+
super(request);
|
11
|
+
this.originModule = originModule;
|
12
|
+
this.range = range;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "import() eager";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
ImportEagerDependency.Template = class ImportEagerDependencyTemplate {
|
21
|
+
apply(dep, source, runtime) {
|
22
|
+
const content = runtime.moduleNamespacePromise({
|
23
|
+
module: dep.module,
|
24
|
+
request: dep.request,
|
25
|
+
strict: dep.originModule.buildMeta.strictHarmonyModule,
|
26
|
+
message: "import() eager"
|
27
|
+
});
|
28
|
+
source.replace(dep.range[0], dep.range[1] - 1, content);
|
29
|
+
}
|
30
|
+
};
|
31
|
+
|
32
|
+
module.exports = ImportEagerDependency;
|