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,35 +1,35 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const { ConcatSource } = require("webpack-sources");
|
8
|
-
|
9
|
-
class WebWorkerChunkTemplatePlugin {
|
10
|
-
apply(chunkTemplate) {
|
11
|
-
chunkTemplate.hooks.render.tap(
|
12
|
-
"WebWorkerChunkTemplatePlugin",
|
13
|
-
(modules, chunk) => {
|
14
|
-
const chunkCallbackName = chunkTemplate.outputOptions.chunkCallbackName;
|
15
|
-
const globalObject = chunkTemplate.outputOptions.globalObject;
|
16
|
-
const source = new ConcatSource();
|
17
|
-
source.add(
|
18
|
-
`${globalObject}[${JSON.stringify(
|
19
|
-
chunkCallbackName
|
20
|
-
)}](${JSON.stringify(chunk.ids)},`
|
21
|
-
);
|
22
|
-
source.add(modules);
|
23
|
-
source.add(")");
|
24
|
-
return source;
|
25
|
-
}
|
26
|
-
);
|
27
|
-
chunkTemplate.hooks.hash.tap("WebWorkerChunkTemplatePlugin", hash => {
|
28
|
-
hash.update("webworker");
|
29
|
-
hash.update("3");
|
30
|
-
hash.update(`${chunkTemplate.outputOptions.chunkCallbackName}`);
|
31
|
-
hash.update(`${chunkTemplate.outputOptions.globalObject}`);
|
32
|
-
});
|
33
|
-
}
|
34
|
-
}
|
35
|
-
module.exports = WebWorkerChunkTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const { ConcatSource } = require("webpack-sources");
|
8
|
+
|
9
|
+
class WebWorkerChunkTemplatePlugin {
|
10
|
+
apply(chunkTemplate) {
|
11
|
+
chunkTemplate.hooks.render.tap(
|
12
|
+
"WebWorkerChunkTemplatePlugin",
|
13
|
+
(modules, chunk) => {
|
14
|
+
const chunkCallbackName = chunkTemplate.outputOptions.chunkCallbackName;
|
15
|
+
const globalObject = chunkTemplate.outputOptions.globalObject;
|
16
|
+
const source = new ConcatSource();
|
17
|
+
source.add(
|
18
|
+
`${globalObject}[${JSON.stringify(
|
19
|
+
chunkCallbackName
|
20
|
+
)}](${JSON.stringify(chunk.ids)},`
|
21
|
+
);
|
22
|
+
source.add(modules);
|
23
|
+
source.add(")");
|
24
|
+
return source;
|
25
|
+
}
|
26
|
+
);
|
27
|
+
chunkTemplate.hooks.hash.tap("WebWorkerChunkTemplatePlugin", hash => {
|
28
|
+
hash.update("webworker");
|
29
|
+
hash.update("3");
|
30
|
+
hash.update(`${chunkTemplate.outputOptions.chunkCallbackName}`);
|
31
|
+
hash.update(`${chunkTemplate.outputOptions.globalObject}`);
|
32
|
+
});
|
33
|
+
}
|
34
|
+
}
|
35
|
+
module.exports = WebWorkerChunkTemplatePlugin;
|
@@ -1,40 +1,40 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const { ConcatSource } = require("webpack-sources");
|
7
|
-
|
8
|
-
class WebWorkerHotUpdateChunkTemplatePlugin {
|
9
|
-
apply(hotUpdateChunkTemplate) {
|
10
|
-
hotUpdateChunkTemplate.hooks.render.tap(
|
11
|
-
"WebWorkerHotUpdateChunkTemplatePlugin",
|
12
|
-
(modulesSource, modules, removedModules, hash, id) => {
|
13
|
-
const hotUpdateFunction =
|
14
|
-
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction;
|
15
|
-
const globalObject = hotUpdateChunkTemplate.outputOptions.globalObject;
|
16
|
-
const source = new ConcatSource();
|
17
|
-
source.add(
|
18
|
-
`${globalObject}[${JSON.stringify(
|
19
|
-
hotUpdateFunction
|
20
|
-
)}](${JSON.stringify(id)},`
|
21
|
-
);
|
22
|
-
source.add(modulesSource);
|
23
|
-
source.add(")");
|
24
|
-
return source;
|
25
|
-
}
|
26
|
-
);
|
27
|
-
hotUpdateChunkTemplate.hooks.hash.tap(
|
28
|
-
"WebWorkerHotUpdateChunkTemplatePlugin",
|
29
|
-
hash => {
|
30
|
-
hash.update("WebWorkerHotUpdateChunkTemplatePlugin");
|
31
|
-
hash.update("3");
|
32
|
-
hash.update(
|
33
|
-
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction + ""
|
34
|
-
);
|
35
|
-
hash.update(hotUpdateChunkTemplate.outputOptions.globalObject + "");
|
36
|
-
}
|
37
|
-
);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
module.exports = WebWorkerHotUpdateChunkTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const { ConcatSource } = require("webpack-sources");
|
7
|
+
|
8
|
+
class WebWorkerHotUpdateChunkTemplatePlugin {
|
9
|
+
apply(hotUpdateChunkTemplate) {
|
10
|
+
hotUpdateChunkTemplate.hooks.render.tap(
|
11
|
+
"WebWorkerHotUpdateChunkTemplatePlugin",
|
12
|
+
(modulesSource, modules, removedModules, hash, id) => {
|
13
|
+
const hotUpdateFunction =
|
14
|
+
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction;
|
15
|
+
const globalObject = hotUpdateChunkTemplate.outputOptions.globalObject;
|
16
|
+
const source = new ConcatSource();
|
17
|
+
source.add(
|
18
|
+
`${globalObject}[${JSON.stringify(
|
19
|
+
hotUpdateFunction
|
20
|
+
)}](${JSON.stringify(id)},`
|
21
|
+
);
|
22
|
+
source.add(modulesSource);
|
23
|
+
source.add(")");
|
24
|
+
return source;
|
25
|
+
}
|
26
|
+
);
|
27
|
+
hotUpdateChunkTemplate.hooks.hash.tap(
|
28
|
+
"WebWorkerHotUpdateChunkTemplatePlugin",
|
29
|
+
hash => {
|
30
|
+
hash.update("WebWorkerHotUpdateChunkTemplatePlugin");
|
31
|
+
hash.update("3");
|
32
|
+
hash.update(
|
33
|
+
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction + ""
|
34
|
+
);
|
35
|
+
hash.update(hotUpdateChunkTemplate.outputOptions.globalObject + "");
|
36
|
+
}
|
37
|
+
);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
module.exports = WebWorkerHotUpdateChunkTemplatePlugin;
|
@@ -1,65 +1,65 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
/*globals installedChunks hotAddUpdateChunk parentHotUpdateCallback importScripts XMLHttpRequest $require$ $hotChunkFilename$ $hotMainFilename$ */
|
6
|
-
module.exports = function() {
|
7
|
-
// eslint-disable-next-line no-unused-vars
|
8
|
-
function webpackHotUpdateCallback(chunkId, moreModules) {
|
9
|
-
hotAddUpdateChunk(chunkId, moreModules);
|
10
|
-
if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
|
11
|
-
} //$semicolon
|
12
|
-
|
13
|
-
// eslint-disable-next-line no-unused-vars
|
14
|
-
function hotDownloadUpdateChunk(chunkId) {
|
15
|
-
importScripts($require$.p + $hotChunkFilename$);
|
16
|
-
}
|
17
|
-
|
18
|
-
// eslint-disable-next-line no-unused-vars
|
19
|
-
function hotDownloadManifest(requestTimeout) {
|
20
|
-
requestTimeout = requestTimeout || 10000;
|
21
|
-
return new Promise(function(resolve, reject) {
|
22
|
-
if (typeof XMLHttpRequest === "undefined") {
|
23
|
-
return reject(new Error("No browser support"));
|
24
|
-
}
|
25
|
-
try {
|
26
|
-
var request = new XMLHttpRequest();
|
27
|
-
var requestPath = $require$.p + $hotMainFilename$;
|
28
|
-
request.open("GET", requestPath, true);
|
29
|
-
request.timeout = requestTimeout;
|
30
|
-
request.send(null);
|
31
|
-
} catch (err) {
|
32
|
-
return reject(err);
|
33
|
-
}
|
34
|
-
request.onreadystatechange = function() {
|
35
|
-
if (request.readyState !== 4) return;
|
36
|
-
if (request.status === 0) {
|
37
|
-
// timeout
|
38
|
-
reject(
|
39
|
-
new Error("Manifest request to " + requestPath + " timed out.")
|
40
|
-
);
|
41
|
-
} else if (request.status === 404) {
|
42
|
-
// no update available
|
43
|
-
resolve();
|
44
|
-
} else if (request.status !== 200 && request.status !== 304) {
|
45
|
-
// other failure
|
46
|
-
reject(new Error("Manifest request to " + requestPath + " failed."));
|
47
|
-
} else {
|
48
|
-
// success
|
49
|
-
try {
|
50
|
-
var update = JSON.parse(request.responseText);
|
51
|
-
} catch (e) {
|
52
|
-
reject(e);
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
resolve(update);
|
56
|
-
}
|
57
|
-
};
|
58
|
-
});
|
59
|
-
}
|
60
|
-
|
61
|
-
//eslint-disable-next-line no-unused-vars
|
62
|
-
function hotDisposeChunk(chunkId) {
|
63
|
-
delete installedChunks[chunkId];
|
64
|
-
}
|
65
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
/*globals installedChunks hotAddUpdateChunk parentHotUpdateCallback importScripts XMLHttpRequest $require$ $hotChunkFilename$ $hotMainFilename$ */
|
6
|
+
module.exports = function() {
|
7
|
+
// eslint-disable-next-line no-unused-vars
|
8
|
+
function webpackHotUpdateCallback(chunkId, moreModules) {
|
9
|
+
hotAddUpdateChunk(chunkId, moreModules);
|
10
|
+
if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
|
11
|
+
} //$semicolon
|
12
|
+
|
13
|
+
// eslint-disable-next-line no-unused-vars
|
14
|
+
function hotDownloadUpdateChunk(chunkId) {
|
15
|
+
importScripts($require$.p + $hotChunkFilename$);
|
16
|
+
}
|
17
|
+
|
18
|
+
// eslint-disable-next-line no-unused-vars
|
19
|
+
function hotDownloadManifest(requestTimeout) {
|
20
|
+
requestTimeout = requestTimeout || 10000;
|
21
|
+
return new Promise(function(resolve, reject) {
|
22
|
+
if (typeof XMLHttpRequest === "undefined") {
|
23
|
+
return reject(new Error("No browser support"));
|
24
|
+
}
|
25
|
+
try {
|
26
|
+
var request = new XMLHttpRequest();
|
27
|
+
var requestPath = $require$.p + $hotMainFilename$;
|
28
|
+
request.open("GET", requestPath, true);
|
29
|
+
request.timeout = requestTimeout;
|
30
|
+
request.send(null);
|
31
|
+
} catch (err) {
|
32
|
+
return reject(err);
|
33
|
+
}
|
34
|
+
request.onreadystatechange = function() {
|
35
|
+
if (request.readyState !== 4) return;
|
36
|
+
if (request.status === 0) {
|
37
|
+
// timeout
|
38
|
+
reject(
|
39
|
+
new Error("Manifest request to " + requestPath + " timed out.")
|
40
|
+
);
|
41
|
+
} else if (request.status === 404) {
|
42
|
+
// no update available
|
43
|
+
resolve();
|
44
|
+
} else if (request.status !== 200 && request.status !== 304) {
|
45
|
+
// other failure
|
46
|
+
reject(new Error("Manifest request to " + requestPath + " failed."));
|
47
|
+
} else {
|
48
|
+
// success
|
49
|
+
try {
|
50
|
+
var update = JSON.parse(request.responseText);
|
51
|
+
} catch (e) {
|
52
|
+
reject(e);
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
resolve(update);
|
56
|
+
}
|
57
|
+
};
|
58
|
+
});
|
59
|
+
}
|
60
|
+
|
61
|
+
//eslint-disable-next-line no-unused-vars
|
62
|
+
function hotDisposeChunk(chunkId) {
|
63
|
+
delete installedChunks[chunkId];
|
64
|
+
}
|
65
|
+
};
|
@@ -1,196 +1,196 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const Template = require("../Template");
|
8
|
-
|
9
|
-
class WebWorkerMainTemplatePlugin {
|
10
|
-
apply(mainTemplate) {
|
11
|
-
const needChunkOnDemandLoadingCode = chunk => {
|
12
|
-
for (const chunkGroup of chunk.groupsIterable) {
|
13
|
-
if (chunkGroup.getNumberOfChildren() > 0) return true;
|
14
|
-
}
|
15
|
-
return false;
|
16
|
-
};
|
17
|
-
mainTemplate.hooks.localVars.tap(
|
18
|
-
"WebWorkerMainTemplatePlugin",
|
19
|
-
(source, chunk) => {
|
20
|
-
if (needChunkOnDemandLoadingCode(chunk)) {
|
21
|
-
return Template.asString([
|
22
|
-
source,
|
23
|
-
"",
|
24
|
-
"// object to store loaded chunks",
|
25
|
-
'// "1" means "already loaded"',
|
26
|
-
"var installedChunks = {",
|
27
|
-
Template.indent(
|
28
|
-
chunk.ids.map(id => `${JSON.stringify(id)}: 1`).join(",\n")
|
29
|
-
),
|
30
|
-
"};"
|
31
|
-
]);
|
32
|
-
}
|
33
|
-
return source;
|
34
|
-
}
|
35
|
-
);
|
36
|
-
mainTemplate.hooks.requireEnsure.tap(
|
37
|
-
"WebWorkerMainTemplatePlugin",
|
38
|
-
(_, chunk, hash) => {
|
39
|
-
const chunkFilename = mainTemplate.outputOptions.chunkFilename;
|
40
|
-
const chunkMaps = chunk.getChunkMaps();
|
41
|
-
return Template.asString([
|
42
|
-
"promises.push(Promise.resolve().then(function() {",
|
43
|
-
Template.indent([
|
44
|
-
'// "1" is the signal for "already loaded"',
|
45
|
-
"if(!installedChunks[chunkId]) {",
|
46
|
-
Template.indent([
|
47
|
-
"importScripts(" +
|
48
|
-
mainTemplate.getAssetPath(JSON.stringify(chunkFilename), {
|
49
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
50
|
-
hashWithLength: length =>
|
51
|
-
`" + ${mainTemplate.renderCurrentHashCode(
|
52
|
-
hash,
|
53
|
-
length
|
54
|
-
)} + "`,
|
55
|
-
chunk: {
|
56
|
-
id: '" + chunkId + "',
|
57
|
-
hash: `" + ${JSON.stringify(chunkMaps.hash)}[chunkId] + "`,
|
58
|
-
hashWithLength(length) {
|
59
|
-
const shortChunkHashMap = Object.create(null);
|
60
|
-
for (const chunkId of Object.keys(chunkMaps.hash)) {
|
61
|
-
if (typeof chunkMaps.hash[chunkId] === "string") {
|
62
|
-
shortChunkHashMap[chunkId] = chunkMaps.hash[
|
63
|
-
chunkId
|
64
|
-
].substr(0, length);
|
65
|
-
}
|
66
|
-
}
|
67
|
-
return `" + ${JSON.stringify(
|
68
|
-
shortChunkHashMap
|
69
|
-
)}[chunkId] + "`;
|
70
|
-
},
|
71
|
-
contentHash: {
|
72
|
-
javascript: `" + ${JSON.stringify(
|
73
|
-
chunkMaps.contentHash.javascript
|
74
|
-
)}[chunkId] + "`
|
75
|
-
},
|
76
|
-
contentHashWithLength: {
|
77
|
-
javascript: length => {
|
78
|
-
const shortContentHashMap = {};
|
79
|
-
const contentHash = chunkMaps.contentHash.javascript;
|
80
|
-
for (const chunkId of Object.keys(contentHash)) {
|
81
|
-
if (typeof contentHash[chunkId] === "string") {
|
82
|
-
shortContentHashMap[chunkId] = contentHash[
|
83
|
-
chunkId
|
84
|
-
].substr(0, length);
|
85
|
-
}
|
86
|
-
}
|
87
|
-
return `" + ${JSON.stringify(
|
88
|
-
shortContentHashMap
|
89
|
-
)}[chunkId] + "`;
|
90
|
-
}
|
91
|
-
},
|
92
|
-
name: `" + (${JSON.stringify(
|
93
|
-
chunkMaps.name
|
94
|
-
)}[chunkId]||chunkId) + "`
|
95
|
-
},
|
96
|
-
contentHashType: "javascript"
|
97
|
-
}) +
|
98
|
-
");"
|
99
|
-
]),
|
100
|
-
"}"
|
101
|
-
]),
|
102
|
-
"}));"
|
103
|
-
]);
|
104
|
-
}
|
105
|
-
);
|
106
|
-
mainTemplate.hooks.bootstrap.tap(
|
107
|
-
"WebWorkerMainTemplatePlugin",
|
108
|
-
(source, chunk, hash) => {
|
109
|
-
if (needChunkOnDemandLoadingCode(chunk)) {
|
110
|
-
const chunkCallbackName =
|
111
|
-
mainTemplate.outputOptions.chunkCallbackName;
|
112
|
-
const globalObject = mainTemplate.outputOptions.globalObject;
|
113
|
-
return Template.asString([
|
114
|
-
source,
|
115
|
-
`${globalObject}[${JSON.stringify(
|
116
|
-
chunkCallbackName
|
117
|
-
)}] = function webpackChunkCallback(chunkIds, moreModules) {`,
|
118
|
-
Template.indent([
|
119
|
-
"for(var moduleId in moreModules) {",
|
120
|
-
Template.indent(
|
121
|
-
mainTemplate.renderAddModule(
|
122
|
-
hash,
|
123
|
-
chunk,
|
124
|
-
"moduleId",
|
125
|
-
"moreModules[moduleId]"
|
126
|
-
)
|
127
|
-
),
|
128
|
-
"}",
|
129
|
-
"while(chunkIds.length)",
|
130
|
-
Template.indent("installedChunks[chunkIds.pop()] = 1;")
|
131
|
-
]),
|
132
|
-
"};"
|
133
|
-
]);
|
134
|
-
}
|
135
|
-
return source;
|
136
|
-
}
|
137
|
-
);
|
138
|
-
mainTemplate.hooks.hotBootstrap.tap(
|
139
|
-
"WebWorkerMainTemplatePlugin",
|
140
|
-
(source, chunk, hash) => {
|
141
|
-
const hotUpdateChunkFilename =
|
142
|
-
mainTemplate.outputOptions.hotUpdateChunkFilename;
|
143
|
-
const hotUpdateMainFilename =
|
144
|
-
mainTemplate.outputOptions.hotUpdateMainFilename;
|
145
|
-
const hotUpdateFunction = mainTemplate.outputOptions.hotUpdateFunction;
|
146
|
-
const globalObject = mainTemplate.outputOptions.globalObject;
|
147
|
-
const currentHotUpdateChunkFilename = mainTemplate.getAssetPath(
|
148
|
-
JSON.stringify(hotUpdateChunkFilename),
|
149
|
-
{
|
150
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
151
|
-
hashWithLength: length =>
|
152
|
-
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
|
153
|
-
chunk: {
|
154
|
-
id: '" + chunkId + "'
|
155
|
-
}
|
156
|
-
}
|
157
|
-
);
|
158
|
-
const currentHotUpdateMainFilename = mainTemplate.getAssetPath(
|
159
|
-
JSON.stringify(hotUpdateMainFilename),
|
160
|
-
{
|
161
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
162
|
-
hashWithLength: length =>
|
163
|
-
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`
|
164
|
-
}
|
165
|
-
);
|
166
|
-
|
167
|
-
return (
|
168
|
-
source +
|
169
|
-
"\n" +
|
170
|
-
`var parentHotUpdateCallback = ${globalObject}[${JSON.stringify(
|
171
|
-
hotUpdateFunction
|
172
|
-
)}];\n` +
|
173
|
-
`${globalObject}[${JSON.stringify(hotUpdateFunction)}] = ` +
|
174
|
-
Template.getFunctionContent(
|
175
|
-
require("./WebWorkerMainTemplate.runtime
|
176
|
-
)
|
177
|
-
.replace(/\/\/\$semicolon/g, ";")
|
178
|
-
.replace(/\$require\$/g, mainTemplate.requireFn)
|
179
|
-
.replace(/\$hotMainFilename\$/g, currentHotUpdateMainFilename)
|
180
|
-
.replace(/\$hotChunkFilename\$/g, currentHotUpdateChunkFilename)
|
181
|
-
.replace(/\$hash\$/g, JSON.stringify(hash))
|
182
|
-
);
|
183
|
-
}
|
184
|
-
);
|
185
|
-
mainTemplate.hooks.hash.tap("WebWorkerMainTemplatePlugin", hash => {
|
186
|
-
hash.update("webworker");
|
187
|
-
hash.update("3");
|
188
|
-
hash.update(`${mainTemplate.outputOptions.publicPath}`);
|
189
|
-
hash.update(`${mainTemplate.outputOptions.filename}`);
|
190
|
-
hash.update(`${mainTemplate.outputOptions.chunkFilename}`);
|
191
|
-
hash.update(`${mainTemplate.outputOptions.chunkCallbackName}`);
|
192
|
-
hash.update(`${mainTemplate.outputOptions.globalObject}`);
|
193
|
-
});
|
194
|
-
}
|
195
|
-
}
|
196
|
-
module.exports = WebWorkerMainTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Template = require("../Template");
|
8
|
+
|
9
|
+
class WebWorkerMainTemplatePlugin {
|
10
|
+
apply(mainTemplate) {
|
11
|
+
const needChunkOnDemandLoadingCode = chunk => {
|
12
|
+
for (const chunkGroup of chunk.groupsIterable) {
|
13
|
+
if (chunkGroup.getNumberOfChildren() > 0) return true;
|
14
|
+
}
|
15
|
+
return false;
|
16
|
+
};
|
17
|
+
mainTemplate.hooks.localVars.tap(
|
18
|
+
"WebWorkerMainTemplatePlugin",
|
19
|
+
(source, chunk) => {
|
20
|
+
if (needChunkOnDemandLoadingCode(chunk)) {
|
21
|
+
return Template.asString([
|
22
|
+
source,
|
23
|
+
"",
|
24
|
+
"// object to store loaded chunks",
|
25
|
+
'// "1" means "already loaded"',
|
26
|
+
"var installedChunks = {",
|
27
|
+
Template.indent(
|
28
|
+
chunk.ids.map(id => `${JSON.stringify(id)}: 1`).join(",\n")
|
29
|
+
),
|
30
|
+
"};"
|
31
|
+
]);
|
32
|
+
}
|
33
|
+
return source;
|
34
|
+
}
|
35
|
+
);
|
36
|
+
mainTemplate.hooks.requireEnsure.tap(
|
37
|
+
"WebWorkerMainTemplatePlugin",
|
38
|
+
(_, chunk, hash) => {
|
39
|
+
const chunkFilename = mainTemplate.outputOptions.chunkFilename;
|
40
|
+
const chunkMaps = chunk.getChunkMaps();
|
41
|
+
return Template.asString([
|
42
|
+
"promises.push(Promise.resolve().then(function() {",
|
43
|
+
Template.indent([
|
44
|
+
'// "1" is the signal for "already loaded"',
|
45
|
+
"if(!installedChunks[chunkId]) {",
|
46
|
+
Template.indent([
|
47
|
+
"importScripts(" +
|
48
|
+
mainTemplate.getAssetPath(JSON.stringify(chunkFilename), {
|
49
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
50
|
+
hashWithLength: length =>
|
51
|
+
`" + ${mainTemplate.renderCurrentHashCode(
|
52
|
+
hash,
|
53
|
+
length
|
54
|
+
)} + "`,
|
55
|
+
chunk: {
|
56
|
+
id: '" + chunkId + "',
|
57
|
+
hash: `" + ${JSON.stringify(chunkMaps.hash)}[chunkId] + "`,
|
58
|
+
hashWithLength(length) {
|
59
|
+
const shortChunkHashMap = Object.create(null);
|
60
|
+
for (const chunkId of Object.keys(chunkMaps.hash)) {
|
61
|
+
if (typeof chunkMaps.hash[chunkId] === "string") {
|
62
|
+
shortChunkHashMap[chunkId] = chunkMaps.hash[
|
63
|
+
chunkId
|
64
|
+
].substr(0, length);
|
65
|
+
}
|
66
|
+
}
|
67
|
+
return `" + ${JSON.stringify(
|
68
|
+
shortChunkHashMap
|
69
|
+
)}[chunkId] + "`;
|
70
|
+
},
|
71
|
+
contentHash: {
|
72
|
+
javascript: `" + ${JSON.stringify(
|
73
|
+
chunkMaps.contentHash.javascript
|
74
|
+
)}[chunkId] + "`
|
75
|
+
},
|
76
|
+
contentHashWithLength: {
|
77
|
+
javascript: length => {
|
78
|
+
const shortContentHashMap = {};
|
79
|
+
const contentHash = chunkMaps.contentHash.javascript;
|
80
|
+
for (const chunkId of Object.keys(contentHash)) {
|
81
|
+
if (typeof contentHash[chunkId] === "string") {
|
82
|
+
shortContentHashMap[chunkId] = contentHash[
|
83
|
+
chunkId
|
84
|
+
].substr(0, length);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
return `" + ${JSON.stringify(
|
88
|
+
shortContentHashMap
|
89
|
+
)}[chunkId] + "`;
|
90
|
+
}
|
91
|
+
},
|
92
|
+
name: `" + (${JSON.stringify(
|
93
|
+
chunkMaps.name
|
94
|
+
)}[chunkId]||chunkId) + "`
|
95
|
+
},
|
96
|
+
contentHashType: "javascript"
|
97
|
+
}) +
|
98
|
+
");"
|
99
|
+
]),
|
100
|
+
"}"
|
101
|
+
]),
|
102
|
+
"}));"
|
103
|
+
]);
|
104
|
+
}
|
105
|
+
);
|
106
|
+
mainTemplate.hooks.bootstrap.tap(
|
107
|
+
"WebWorkerMainTemplatePlugin",
|
108
|
+
(source, chunk, hash) => {
|
109
|
+
if (needChunkOnDemandLoadingCode(chunk)) {
|
110
|
+
const chunkCallbackName =
|
111
|
+
mainTemplate.outputOptions.chunkCallbackName;
|
112
|
+
const globalObject = mainTemplate.outputOptions.globalObject;
|
113
|
+
return Template.asString([
|
114
|
+
source,
|
115
|
+
`${globalObject}[${JSON.stringify(
|
116
|
+
chunkCallbackName
|
117
|
+
)}] = function webpackChunkCallback(chunkIds, moreModules) {`,
|
118
|
+
Template.indent([
|
119
|
+
"for(var moduleId in moreModules) {",
|
120
|
+
Template.indent(
|
121
|
+
mainTemplate.renderAddModule(
|
122
|
+
hash,
|
123
|
+
chunk,
|
124
|
+
"moduleId",
|
125
|
+
"moreModules[moduleId]"
|
126
|
+
)
|
127
|
+
),
|
128
|
+
"}",
|
129
|
+
"while(chunkIds.length)",
|
130
|
+
Template.indent("installedChunks[chunkIds.pop()] = 1;")
|
131
|
+
]),
|
132
|
+
"};"
|
133
|
+
]);
|
134
|
+
}
|
135
|
+
return source;
|
136
|
+
}
|
137
|
+
);
|
138
|
+
mainTemplate.hooks.hotBootstrap.tap(
|
139
|
+
"WebWorkerMainTemplatePlugin",
|
140
|
+
(source, chunk, hash) => {
|
141
|
+
const hotUpdateChunkFilename =
|
142
|
+
mainTemplate.outputOptions.hotUpdateChunkFilename;
|
143
|
+
const hotUpdateMainFilename =
|
144
|
+
mainTemplate.outputOptions.hotUpdateMainFilename;
|
145
|
+
const hotUpdateFunction = mainTemplate.outputOptions.hotUpdateFunction;
|
146
|
+
const globalObject = mainTemplate.outputOptions.globalObject;
|
147
|
+
const currentHotUpdateChunkFilename = mainTemplate.getAssetPath(
|
148
|
+
JSON.stringify(hotUpdateChunkFilename),
|
149
|
+
{
|
150
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
151
|
+
hashWithLength: length =>
|
152
|
+
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
|
153
|
+
chunk: {
|
154
|
+
id: '" + chunkId + "'
|
155
|
+
}
|
156
|
+
}
|
157
|
+
);
|
158
|
+
const currentHotUpdateMainFilename = mainTemplate.getAssetPath(
|
159
|
+
JSON.stringify(hotUpdateMainFilename),
|
160
|
+
{
|
161
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
162
|
+
hashWithLength: length =>
|
163
|
+
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`
|
164
|
+
}
|
165
|
+
);
|
166
|
+
|
167
|
+
return (
|
168
|
+
source +
|
169
|
+
"\n" +
|
170
|
+
`var parentHotUpdateCallback = ${globalObject}[${JSON.stringify(
|
171
|
+
hotUpdateFunction
|
172
|
+
)}];\n` +
|
173
|
+
`${globalObject}[${JSON.stringify(hotUpdateFunction)}] = ` +
|
174
|
+
Template.getFunctionContent(
|
175
|
+
require("./WebWorkerMainTemplate.runtime")
|
176
|
+
)
|
177
|
+
.replace(/\/\/\$semicolon/g, ";")
|
178
|
+
.replace(/\$require\$/g, mainTemplate.requireFn)
|
179
|
+
.replace(/\$hotMainFilename\$/g, currentHotUpdateMainFilename)
|
180
|
+
.replace(/\$hotChunkFilename\$/g, currentHotUpdateChunkFilename)
|
181
|
+
.replace(/\$hash\$/g, JSON.stringify(hash))
|
182
|
+
);
|
183
|
+
}
|
184
|
+
);
|
185
|
+
mainTemplate.hooks.hash.tap("WebWorkerMainTemplatePlugin", hash => {
|
186
|
+
hash.update("webworker");
|
187
|
+
hash.update("3");
|
188
|
+
hash.update(`${mainTemplate.outputOptions.publicPath}`);
|
189
|
+
hash.update(`${mainTemplate.outputOptions.filename}`);
|
190
|
+
hash.update(`${mainTemplate.outputOptions.chunkFilename}`);
|
191
|
+
hash.update(`${mainTemplate.outputOptions.chunkCallbackName}`);
|
192
|
+
hash.update(`${mainTemplate.outputOptions.globalObject}`);
|
193
|
+
});
|
194
|
+
}
|
195
|
+
}
|
196
|
+
module.exports = WebWorkerMainTemplatePlugin;
|