webpack 4.9.1 → 4.10.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/README.md +755 -755
- package/SECURITY.md +9 -9
- package/buildin/global.js +20 -20
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/hot/dev-server.js +61 -61
- 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 +37 -37
- package/hot/signal.js +62 -62
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +87 -75
- package/lib/AsyncDependenciesBlock.js +66 -66
- package/lib/AsyncDependencyToInitialChunkError.js +31 -21
- package/lib/AutomaticPrefetchPlugin.js +50 -50
- package/lib/BannerPlugin.js +3 -1
- package/lib/BasicEvaluatedExpression.js +211 -208
- package/lib/CachePlugin.js +102 -95
- package/lib/CaseSensitiveModulesWarning.js +71 -53
- package/lib/Chunk.js +750 -722
- package/lib/ChunkGroup.js +13 -5
- package/lib/ChunkRenderError.js +32 -32
- package/lib/CompatibilityPlugin.js +63 -63
- package/lib/Compilation.js +1947 -1905
- package/lib/Compiler.js +508 -496
- package/lib/ConcurrentCompilationError.js +19 -19
- package/lib/ConstPlugin.js +258 -242
- package/lib/ContextExclusionPlugin.js +17 -17
- package/lib/ContextModule.js +749 -710
- package/lib/ContextModuleFactory.js +256 -245
- package/lib/ContextReplacementPlugin.js +133 -126
- package/lib/DefinePlugin.js +206 -197
- package/lib/DelegatedModule.js +101 -101
- package/lib/DelegatedModuleFactoryPlugin.js +89 -89
- package/lib/DelegatedPlugin.js +39 -39
- package/lib/DependenciesBlock.js +89 -87
- package/lib/DependenciesBlockVariable.js +52 -51
- package/lib/Dependency.js +51 -51
- package/lib/DllEntryPlugin.js +51 -51
- package/lib/DllModule.js +54 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/DllPlugin.js +44 -42
- package/lib/DllReferencePlugin.js +84 -84
- package/lib/DynamicEntryPlugin.js +73 -71
- package/lib/EntryOptionPlugin.js +33 -33
- package/lib/EnvironmentPlugin.js +65 -65
- package/lib/ErrorHelpers.js +60 -57
- package/lib/EvalDevToolModulePlugin.js +27 -27
- package/lib/EvalDevToolModuleTemplatePlugin.js +61 -61
- package/lib/EvalSourceMapDevToolPlugin.js +41 -40
- package/lib/ExportPropertyMainTemplatePlugin.js +53 -40
- package/lib/ExtendedAPIPlugin.js +84 -84
- package/lib/ExternalModule.js +159 -159
- package/lib/ExternalModuleFactoryPlugin.js +110 -110
- package/lib/ExternalsPlugin.js +23 -23
- package/lib/FlagDependencyExportsPlugin.js +146 -146
- package/lib/FlagDependencyUsagePlugin.js +110 -104
- package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
- package/lib/FunctionModulePlugin.js +19 -19
- package/lib/FunctionModuleTemplatePlugin.js +100 -98
- package/lib/GraphHelpers.js +64 -64
- package/lib/HarmonyLinkingError.js +18 -18
- package/lib/HashedModuleIdsPlugin.js +53 -53
- package/lib/HotModuleReplacement.runtime.js +7 -3
- package/lib/HotModuleReplacementPlugin.js +413 -406
- package/lib/HotUpdateChunk.js +16 -16
- package/lib/HotUpdateChunkTemplate.js +78 -78
- package/lib/IgnorePlugin.js +71 -71
- package/lib/JavascriptGenerator.js +229 -228
- package/lib/JavascriptModulesPlugin.js +179 -184
- package/lib/JsonGenerator.js +42 -42
- package/lib/JsonModulesPlugin.js +30 -30
- package/lib/JsonParser.js +27 -26
- package/lib/LibManifestPlugin.js +86 -86
- package/lib/LibraryTemplatePlugin.js +153 -119
- package/lib/LoaderOptionsPlugin.js +53 -52
- package/lib/LoaderTargetPlugin.js +24 -24
- package/lib/MainTemplate.js +34 -9
- package/lib/Module.js +381 -377
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleDependencyError.js +35 -25
- package/lib/ModuleDependencyWarning.js +25 -25
- package/lib/ModuleError.js +28 -28
- package/lib/ModuleFilenameHelpers.js +178 -166
- package/lib/ModuleParseError.js +44 -44
- package/lib/ModuleReason.js +40 -40
- package/lib/ModuleTemplate.js +84 -84
- package/lib/ModuleWarning.js +30 -30
- package/lib/MultiCompiler.js +283 -271
- package/lib/MultiEntryPlugin.js +58 -58
- package/lib/MultiModule.js +81 -78
- 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 +179 -178
- package/lib/NormalModule.js +497 -490
- package/lib/NormalModuleFactory.js +501 -483
- package/lib/NormalModuleReplacementPlugin.js +51 -51
- package/lib/OptionsDefaulter.js +84 -80
- package/lib/Parser.js +2164 -2086
- package/lib/ParserHelpers.js +103 -100
- package/lib/PrefetchPlugin.js +37 -37
- package/lib/ProgressPlugin.js +231 -231
- package/lib/ProvidePlugin.js +86 -86
- package/lib/RawModule.js +56 -54
- package/lib/RecordIdsPlugin.js +166 -162
- package/lib/RemovedPluginError.js +13 -13
- package/lib/RequestShortener.js +81 -74
- package/lib/RequireJsStuffPlugin.js +69 -69
- package/lib/ResolverFactory.js +64 -64
- package/lib/RuleSet.js +555 -534
- package/lib/RuntimeTemplate.js +320 -277
- package/lib/SetVarMainTemplatePlugin.js +69 -57
- package/lib/SingleEntryPlugin.js +44 -44
- package/lib/SizeFormatHelpers.js +24 -24
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
- package/lib/SourceMapDevToolPlugin.js +301 -300
- package/lib/Stats.js +1408 -1367
- package/lib/Template.js +4 -2
- package/lib/TemplatedPathPlugin.js +173 -170
- package/lib/UmdMainTemplatePlugin.js +304 -264
- package/lib/UseStrictPlugin.js +48 -48
- package/lib/WarnCaseSensitiveModulesPlugin.js +37 -36
- package/lib/WarnNoModeSetPlugin.js +17 -17
- package/lib/WatchIgnorePlugin.js +100 -100
- package/lib/Watching.js +194 -193
- package/lib/WebpackError.js +25 -19
- package/lib/WebpackOptionsApply.js +421 -405
- package/lib/WebpackOptionsDefaulter.js +347 -344
- package/lib/WebpackOptionsValidationError.js +345 -316
- package/lib/compareLocations.js +56 -56
- package/lib/dependencies/AMDDefineDependency.js +137 -137
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +336 -327
- package/lib/dependencies/AMDPlugin.js +250 -250
- package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependenciesBlock.js +43 -43
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +273 -270
- package/lib/dependencies/AMDRequireDependency.js +135 -135
- package/lib/dependencies/CommonJsPlugin.js +161 -161
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +130 -130
- package/lib/dependencies/ConstDependency.js +33 -33
- package/lib/dependencies/ContextDependency.js +68 -68
- package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/DelegatedExportsDependency.js +33 -33
- package/lib/dependencies/DependencyReference.js +18 -18
- package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
- package/lib/dependencies/HarmonyAcceptImportDependency.js +23 -23
- package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -90
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
- package/lib/dependencies/HarmonyExportExpressionDependency.js +53 -53
- package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +620 -603
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +54 -54
- package/lib/dependencies/HarmonyImportDependency.js +104 -94
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +217 -214
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +166 -156
- 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 +233 -232
- package/lib/dependencies/ImportPlugin.js +82 -82
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/JsonExportsDependency.js +26 -26
- package/lib/dependencies/LoaderPlugin.js +98 -93
- package/lib/dependencies/LocalModuleDependency.js +28 -28
- package/lib/dependencies/LocalModulesHelpers.js +52 -45
- package/lib/dependencies/ModuleDependency.js +20 -20
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
- package/lib/dependencies/MultiEntryDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
- package/lib/dependencies/RequireContextPlugin.js +143 -141
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -112
- package/lib/dependencies/RequireEnsureDependency.js +58 -58
- package/lib/dependencies/RequireEnsurePlugin.js +74 -74
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependency.js +39 -39
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
- package/lib/dependencies/RequireIncludePlugin.js +61 -61
- package/lib/dependencies/RequireResolveContextDependency.js +23 -23
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SingleEntryDependency.js +18 -18
- package/lib/dependencies/SystemPlugin.js +125 -125
- package/lib/dependencies/UnsupportedDependency.js +27 -27
- package/lib/dependencies/WebAssemblyImportDependency.js +48 -44
- package/lib/dependencies/WebpackMissingModule.js +20 -20
- package/lib/dependencies/getFunctionExpression.js +52 -52
- package/lib/formatLocation.js +61 -53
- 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/NodeMainTemplateAsync.runtime.js +44 -44
- package/lib/node/NodeMainTemplatePlugin.js +323 -320
- package/lib/node/NodeSourcePlugin.js +144 -140
- package/lib/node/NodeTargetPlugin.js +18 -18
- package/lib/node/NodeTemplatePlugin.js +31 -31
- package/lib/node/NodeWatchFileSystem.js +99 -82
- package/lib/node/ReadFileCompileWasmTemplatePlugin.js +52 -52
- package/lib/optimize/AggressiveMergingPlugin.js +87 -87
- package/lib/optimize/AggressiveSplittingPlugin.js +287 -281
- package/lib/optimize/ChunkModuleIdRangePlugin.js +68 -68
- package/lib/optimize/ConcatenatedModule.js +1420 -1413
- 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 -75
- package/lib/optimize/MinChunkSizePlugin.js +77 -77
- package/lib/optimize/ModuleConcatenationPlugin.js +470 -457
- package/lib/optimize/OccurrenceOrderPlugin.js +133 -126
- package/lib/optimize/RemoveParentModulesPlugin.js +127 -117
- package/lib/optimize/RuntimeChunkPlugin.js +41 -41
- package/lib/optimize/SideEffectsFlagPlugin.js +158 -156
- package/lib/optimize/SplitChunksPlugin.js +709 -696
- package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +31 -31
- package/lib/performance/NoAsyncChunksWarning.js +21 -21
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/Semaphore.js +41 -41
- package/lib/util/SortableSet.js +5 -2
- package/lib/util/StackedSetMap.js +12 -5
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/cachedMerge.js +35 -35
- package/lib/util/createHash.js +77 -77
- package/lib/util/identifier.js +76 -76
- package/lib/validateSchema.js +67 -67
- package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +18 -18
- package/lib/wasm/WasmMainTemplatePlugin.js +310 -304
- package/lib/wasm/WebAssemblyGenerator.js +143 -19
- package/lib/wasm/WebAssemblyJavascriptGenerator.js +90 -107
- package/lib/wasm/WebAssemblyModulesPlugin.js +80 -80
- package/lib/wasm/WebAssemblyParser.js +28 -5
- package/lib/wasm/WebAssemblyUtils.js +48 -0
- package/lib/web/FetchCompileWasmTemplatePlugin.js +25 -25
- package/lib/web/JsonpChunkTemplatePlugin.js +47 -47
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplate.runtime.js +65 -64
- package/lib/web/JsonpMainTemplatePlugin.js +576 -574
- package/lib/web/JsonpTemplatePlugin.js +23 -23
- package/lib/webpack.js +183 -182
- package/lib/webpack.web.js +31 -31
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -64
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +179 -179
- package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
- package/package.json +9 -8
- package/schemas/WebpackOptions.json +1988 -1988
- package/schemas/ajv.absolutePath.js +55 -55
- 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
@@ -1,33 +1,33 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const DependencyReference = require("./DependencyReference");
|
8
|
-
const NullDependency = require("./NullDependency");
|
9
|
-
|
10
|
-
class DelegatedExportsDependency extends NullDependency {
|
11
|
-
constructor(originModule, exports) {
|
12
|
-
super();
|
13
|
-
this.originModule = originModule;
|
14
|
-
this.exports = exports;
|
15
|
-
}
|
16
|
-
|
17
|
-
get type() {
|
18
|
-
return "delegated exports";
|
19
|
-
}
|
20
|
-
|
21
|
-
getReference() {
|
22
|
-
return new DependencyReference(this.originModule, true, false);
|
23
|
-
}
|
24
|
-
|
25
|
-
getExports() {
|
26
|
-
return {
|
27
|
-
exports: this.exports,
|
28
|
-
dependencies: undefined
|
29
|
-
};
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
module.exports = DelegatedExportsDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const DependencyReference = require("./DependencyReference");
|
8
|
+
const NullDependency = require("./NullDependency");
|
9
|
+
|
10
|
+
class DelegatedExportsDependency extends NullDependency {
|
11
|
+
constructor(originModule, exports) {
|
12
|
+
super();
|
13
|
+
this.originModule = originModule;
|
14
|
+
this.exports = exports;
|
15
|
+
}
|
16
|
+
|
17
|
+
get type() {
|
18
|
+
return "delegated exports";
|
19
|
+
}
|
20
|
+
|
21
|
+
getReference() {
|
22
|
+
return new DependencyReference(this.originModule, true, false);
|
23
|
+
}
|
24
|
+
|
25
|
+
getExports() {
|
26
|
+
return {
|
27
|
+
exports: this.exports,
|
28
|
+
dependencies: undefined
|
29
|
+
};
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
module.exports = DelegatedExportsDependency;
|
@@ -1,18 +1,18 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Florent Cailhol @ooflorent
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class DependencyReference {
|
8
|
-
constructor(module, importedNames, weak) {
|
9
|
-
this.module = module;
|
10
|
-
// true: full object
|
11
|
-
// false: only sideeffects/no export
|
12
|
-
// array of strings: the exports with this names
|
13
|
-
this.importedNames = importedNames;
|
14
|
-
this.weak = weak;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
module.exports = DependencyReference;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Florent Cailhol @ooflorent
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class DependencyReference {
|
8
|
+
constructor(module, importedNames, weak) {
|
9
|
+
this.module = module;
|
10
|
+
// true: full object
|
11
|
+
// false: only sideeffects/no export
|
12
|
+
// array of strings: the exports with this names
|
13
|
+
this.importedNames = importedNames;
|
14
|
+
this.weak = weak;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
module.exports = DependencyReference;
|
@@ -1,45 +1,45 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const NullDependency = require("./NullDependency");
|
8
|
-
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
9
|
-
|
10
|
-
class HarmonyAcceptDependency extends NullDependency {
|
11
|
-
constructor(range, dependencies, hasCallback) {
|
12
|
-
super();
|
13
|
-
this.range = range;
|
14
|
-
this.dependencies = dependencies;
|
15
|
-
this.hasCallback = hasCallback;
|
16
|
-
}
|
17
|
-
|
18
|
-
get type() {
|
19
|
-
return "accepted harmony modules";
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate {
|
24
|
-
apply(dep, source, runtime) {
|
25
|
-
const content = dep.dependencies
|
26
|
-
.filter(dependency =>
|
27
|
-
HarmonyImportDependency.Template.isImportEmitted(dependency, source)
|
28
|
-
)
|
29
|
-
.map(dependency => dependency.getImportStatement(true, runtime))
|
30
|
-
.join("");
|
31
|
-
|
32
|
-
if (dep.hasCallback) {
|
33
|
-
source.insert(
|
34
|
-
dep.range[0],
|
35
|
-
`function(__WEBPACK_OUTDATED_DEPENDENCIES__) { ${content}(`
|
36
|
-
);
|
37
|
-
source.insert(dep.range[1], ")(__WEBPACK_OUTDATED_DEPENDENCIES__); }");
|
38
|
-
return;
|
39
|
-
}
|
40
|
-
|
41
|
-
source.insert(dep.range[1] - 0.5, `, function() { ${content} }`);
|
42
|
-
}
|
43
|
-
};
|
44
|
-
|
45
|
-
module.exports = HarmonyAcceptDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const NullDependency = require("./NullDependency");
|
8
|
+
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
9
|
+
|
10
|
+
class HarmonyAcceptDependency extends NullDependency {
|
11
|
+
constructor(range, dependencies, hasCallback) {
|
12
|
+
super();
|
13
|
+
this.range = range;
|
14
|
+
this.dependencies = dependencies;
|
15
|
+
this.hasCallback = hasCallback;
|
16
|
+
}
|
17
|
+
|
18
|
+
get type() {
|
19
|
+
return "accepted harmony modules";
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate {
|
24
|
+
apply(dep, source, runtime) {
|
25
|
+
const content = dep.dependencies
|
26
|
+
.filter(dependency =>
|
27
|
+
HarmonyImportDependency.Template.isImportEmitted(dependency, source)
|
28
|
+
)
|
29
|
+
.map(dependency => dependency.getImportStatement(true, runtime))
|
30
|
+
.join("");
|
31
|
+
|
32
|
+
if (dep.hasCallback) {
|
33
|
+
source.insert(
|
34
|
+
dep.range[0],
|
35
|
+
`function(__WEBPACK_OUTDATED_DEPENDENCIES__) { ${content}(`
|
36
|
+
);
|
37
|
+
source.insert(dep.range[1], ")(__WEBPACK_OUTDATED_DEPENDENCIES__); }");
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
|
41
|
+
source.insert(dep.range[1] - 0.5, `, function() { ${content} }`);
|
42
|
+
}
|
43
|
+
};
|
44
|
+
|
45
|
+
module.exports = HarmonyAcceptDependency;
|
@@ -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 HarmonyImportDependency = require("./HarmonyImportDependency");
|
7
|
-
|
8
|
-
class HarmonyAcceptImportDependency extends HarmonyImportDependency {
|
9
|
-
constructor(request, originModule, parserScope) {
|
10
|
-
super(request, originModule, NaN, parserScope);
|
11
|
-
this.weak = true;
|
12
|
-
}
|
13
|
-
|
14
|
-
get type() {
|
15
|
-
return "harmony accept";
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
HarmonyAcceptImportDependency.Template = class HarmonyAcceptImportDependencyTemplate extends HarmonyImportDependency.Template {
|
20
|
-
apply(dep, source, runtime) {}
|
21
|
-
};
|
22
|
-
|
23
|
-
module.exports = HarmonyAcceptImportDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
7
|
+
|
8
|
+
class HarmonyAcceptImportDependency extends HarmonyImportDependency {
|
9
|
+
constructor(request, originModule, parserScope) {
|
10
|
+
super(request, originModule, NaN, parserScope);
|
11
|
+
this.weak = true;
|
12
|
+
}
|
13
|
+
|
14
|
+
get type() {
|
15
|
+
return "harmony accept";
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
HarmonyAcceptImportDependency.Template = class HarmonyAcceptImportDependencyTemplate extends HarmonyImportDependency.Template {
|
20
|
+
apply(dep, source, runtime) {}
|
21
|
+
};
|
22
|
+
|
23
|
+
module.exports = HarmonyAcceptImportDependency;
|
@@ -1,31 +1,31 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const NullDependency = require("./NullDependency");
|
7
|
-
|
8
|
-
class HarmonyCompatibilityDependency extends NullDependency {
|
9
|
-
constructor(originModule) {
|
10
|
-
super();
|
11
|
-
this.originModule = originModule;
|
12
|
-
}
|
13
|
-
|
14
|
-
get type() {
|
15
|
-
return "harmony export header";
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate {
|
20
|
-
apply(dep, source, runtime) {
|
21
|
-
const usedExports = dep.originModule.usedExports;
|
22
|
-
if (usedExports !== false && !Array.isArray(usedExports)) {
|
23
|
-
const content = runtime.defineEsModuleFlagStatement({
|
24
|
-
exportsArgument: dep.originModule.exportsArgument
|
25
|
-
});
|
26
|
-
source.insert(-10, content);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
};
|
30
|
-
|
31
|
-
module.exports = HarmonyCompatibilityDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const NullDependency = require("./NullDependency");
|
7
|
+
|
8
|
+
class HarmonyCompatibilityDependency extends NullDependency {
|
9
|
+
constructor(originModule) {
|
10
|
+
super();
|
11
|
+
this.originModule = originModule;
|
12
|
+
}
|
13
|
+
|
14
|
+
get type() {
|
15
|
+
return "harmony export header";
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate {
|
20
|
+
apply(dep, source, runtime) {
|
21
|
+
const usedExports = dep.originModule.usedExports;
|
22
|
+
if (usedExports !== false && !Array.isArray(usedExports)) {
|
23
|
+
const content = runtime.defineEsModuleFlagStatement({
|
24
|
+
exportsArgument: dep.originModule.exportsArgument
|
25
|
+
});
|
26
|
+
source.insert(-10, content);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
};
|
30
|
+
|
31
|
+
module.exports = HarmonyCompatibilityDependency;
|
@@ -1,90 +1,92 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
|
8
|
-
const HarmonyInitDependency = require("./HarmonyInitDependency");
|
9
|
-
|
10
|
-
module.exports = class HarmonyDetectionParserPlugin {
|
11
|
-
apply(parser) {
|
12
|
-
parser.hooks.program.tap("HarmonyDetectionParserPlugin", ast => {
|
13
|
-
const isStrictHarmony = parser.state.module.type === "javascript/esm";
|
14
|
-
const isHarmony =
|
15
|
-
isStrictHarmony ||
|
16
|
-
ast.body.some(statement => {
|
17
|
-
return /^(Import|Export).*Declaration$/.test(statement.type);
|
18
|
-
});
|
19
|
-
if (isHarmony) {
|
20
|
-
const module = parser.state.module;
|
21
|
-
const compatDep = new HarmonyCompatibilityDependency(module);
|
22
|
-
compatDep.loc = {
|
23
|
-
start: {
|
24
|
-
line: -1,
|
25
|
-
column: 0
|
26
|
-
},
|
27
|
-
end: {
|
28
|
-
line: -1,
|
29
|
-
column: 0
|
30
|
-
},
|
31
|
-
index: -3
|
32
|
-
};
|
33
|
-
module.addDependency(compatDep);
|
34
|
-
const initDep = new HarmonyInitDependency(module);
|
35
|
-
initDep.loc = {
|
36
|
-
start: {
|
37
|
-
line: -1,
|
38
|
-
column: 0
|
39
|
-
},
|
40
|
-
end: {
|
41
|
-
line: -1,
|
42
|
-
column: 0
|
43
|
-
},
|
44
|
-
index: -2
|
45
|
-
};
|
46
|
-
module.addDependency(initDep);
|
47
|
-
parser.state.harmonyParserScope = parser.state.harmonyParserScope || {};
|
48
|
-
parser.scope.isStrict = true;
|
49
|
-
module.buildMeta.exportsType = "namespace";
|
50
|
-
module.buildInfo.strict = true;
|
51
|
-
module.buildInfo.exportsArgument = "__webpack_exports__";
|
52
|
-
if (isStrictHarmony) {
|
53
|
-
module.buildMeta.strictHarmonyModule = true;
|
54
|
-
module.buildInfo.moduleArgument = "__webpack_module__";
|
55
|
-
}
|
56
|
-
}
|
57
|
-
});
|
58
|
-
|
59
|
-
const skipInHarmony = () => {
|
60
|
-
const module = parser.state.module;
|
61
|
-
if (module && module.buildMeta && module.buildMeta.exportsType)
|
62
|
-
return true;
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
.
|
78
|
-
|
79
|
-
|
80
|
-
.
|
81
|
-
|
82
|
-
|
83
|
-
.
|
84
|
-
|
85
|
-
|
86
|
-
.
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
}
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
|
8
|
+
const HarmonyInitDependency = require("./HarmonyInitDependency");
|
9
|
+
|
10
|
+
module.exports = class HarmonyDetectionParserPlugin {
|
11
|
+
apply(parser) {
|
12
|
+
parser.hooks.program.tap("HarmonyDetectionParserPlugin", ast => {
|
13
|
+
const isStrictHarmony = parser.state.module.type === "javascript/esm";
|
14
|
+
const isHarmony =
|
15
|
+
isStrictHarmony ||
|
16
|
+
ast.body.some(statement => {
|
17
|
+
return /^(Import|Export).*Declaration$/.test(statement.type);
|
18
|
+
});
|
19
|
+
if (isHarmony) {
|
20
|
+
const module = parser.state.module;
|
21
|
+
const compatDep = new HarmonyCompatibilityDependency(module);
|
22
|
+
compatDep.loc = {
|
23
|
+
start: {
|
24
|
+
line: -1,
|
25
|
+
column: 0
|
26
|
+
},
|
27
|
+
end: {
|
28
|
+
line: -1,
|
29
|
+
column: 0
|
30
|
+
},
|
31
|
+
index: -3
|
32
|
+
};
|
33
|
+
module.addDependency(compatDep);
|
34
|
+
const initDep = new HarmonyInitDependency(module);
|
35
|
+
initDep.loc = {
|
36
|
+
start: {
|
37
|
+
line: -1,
|
38
|
+
column: 0
|
39
|
+
},
|
40
|
+
end: {
|
41
|
+
line: -1,
|
42
|
+
column: 0
|
43
|
+
},
|
44
|
+
index: -2
|
45
|
+
};
|
46
|
+
module.addDependency(initDep);
|
47
|
+
parser.state.harmonyParserScope = parser.state.harmonyParserScope || {};
|
48
|
+
parser.scope.isStrict = true;
|
49
|
+
module.buildMeta.exportsType = "namespace";
|
50
|
+
module.buildInfo.strict = true;
|
51
|
+
module.buildInfo.exportsArgument = "__webpack_exports__";
|
52
|
+
if (isStrictHarmony) {
|
53
|
+
module.buildMeta.strictHarmonyModule = true;
|
54
|
+
module.buildInfo.moduleArgument = "__webpack_module__";
|
55
|
+
}
|
56
|
+
}
|
57
|
+
});
|
58
|
+
|
59
|
+
const skipInHarmony = () => {
|
60
|
+
const module = parser.state.module;
|
61
|
+
if (module && module.buildMeta && module.buildMeta.exportsType) {
|
62
|
+
return true;
|
63
|
+
}
|
64
|
+
};
|
65
|
+
|
66
|
+
const nullInHarmony = () => {
|
67
|
+
const module = parser.state.module;
|
68
|
+
if (module && module.buildMeta && module.buildMeta.exportsType) {
|
69
|
+
return null;
|
70
|
+
}
|
71
|
+
};
|
72
|
+
|
73
|
+
const nonHarmonyIdentifiers = ["define", "exports"];
|
74
|
+
for (const identifer of nonHarmonyIdentifiers) {
|
75
|
+
parser.hooks.evaluateTypeof
|
76
|
+
.for(identifer)
|
77
|
+
.tap("HarmonyDetectionParserPlugin", nullInHarmony);
|
78
|
+
parser.hooks.typeof
|
79
|
+
.for(identifer)
|
80
|
+
.tap("HarmonyDetectionParserPlugin", skipInHarmony);
|
81
|
+
parser.hooks.evaluate
|
82
|
+
.for(identifer)
|
83
|
+
.tap("HarmonyDetectionParserPlugin", nullInHarmony);
|
84
|
+
parser.hooks.expression
|
85
|
+
.for(identifer)
|
86
|
+
.tap("HarmonyDetectionParserPlugin", skipInHarmony);
|
87
|
+
parser.hooks.call
|
88
|
+
.for(identifer)
|
89
|
+
.tap("HarmonyDetectionParserPlugin", skipInHarmony);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
};
|