webpack 3.8.1 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +721 -716
- package/bin/webpack.js +12 -8
- package/buildin/.eslintrc +7 -7
- package/buildin/amd-define.js +3 -3
- package/buildin/amd-options.js +2 -2
- package/buildin/global.js +21 -21
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/buildin/system.js +7 -7
- package/hot/.eslintrc +9 -9
- package/hot/dev-server.js +53 -53
- package/hot/emitter.js +2 -2
- package/hot/log-apply-result.js +38 -38
- package/hot/log.js +44 -44
- package/hot/only-dev-server.js +71 -71
- package/hot/poll.js +34 -34
- package/hot/signal.js +52 -51
- package/lib/APIPlugin.js +45 -45
- package/lib/AsyncDependenciesBlock.js +43 -43
- package/lib/AutomaticPrefetchPlugin.js +36 -36
- package/lib/BannerPlugin.js +4 -2
- package/lib/BasicEvaluatedExpression.js +203 -203
- package/lib/CaseSensitiveModulesWarning.js +49 -49
- package/lib/Chunk.js +2 -2
- package/lib/ChunkRenderError.js +24 -24
- package/lib/ChunkTemplate.js +36 -36
- package/lib/CompatibilityPlugin.js +57 -57
- package/lib/Compilation.js +81 -92
- package/lib/Compiler.js +519 -523
- package/lib/ConstPlugin.js +60 -60
- package/lib/ContextModule.js +431 -431
- package/lib/ContextReplacementPlugin.js +111 -111
- package/lib/DefinePlugin.js +123 -123
- package/lib/DelegatedModule.js +98 -98
- package/lib/DelegatedModuleFactoryPlugin.js +59 -59
- package/lib/DelegatedPlugin.js +30 -30
- package/lib/DependenciesBlockVariable.js +51 -51
- package/lib/DllEntryPlugin.js +37 -37
- package/lib/DllModule.js +58 -58
- package/lib/DllModuleFactory.js +20 -20
- package/lib/DllPlugin.js +38 -38
- package/lib/DllReferencePlugin.js +62 -62
- package/lib/DynamicEntryPlugin.js +59 -59
- package/lib/EntryModuleNotFoundError.js +22 -22
- package/lib/EntryOptionPlugin.js +31 -31
- package/lib/EnvironmentPlugin.js +60 -50
- package/lib/ErrorHelpers.js +31 -31
- package/lib/EvalDevToolModulePlugin.js +22 -22
- package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
- package/lib/EvalSourceMapDevToolPlugin.js +32 -32
- package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
- package/lib/ExtendedAPIPlugin.js +47 -47
- package/lib/ExternalModuleFactoryPlugin.js +91 -91
- package/lib/ExternalsPlugin.js +21 -21
- package/lib/FlagDependencyExportsPlugin.js +101 -101
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/FunctionModulePlugin.js +24 -24
- package/lib/HashedModuleIdsPlugin.js +42 -42
- package/lib/HotModuleReplacementPlugin.js +5 -5
- package/lib/HotUpdateChunkTemplate.js +31 -31
- package/lib/IgnorePlugin.js +69 -69
- package/lib/JsonpExportMainTemplatePlugin.js +37 -37
- package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
- package/lib/JsonpMainTemplatePlugin.js +4 -3
- package/lib/JsonpTemplatePlugin.js +21 -21
- package/lib/LibManifestPlugin.js +63 -63
- package/lib/LibraryTemplatePlugin.js +92 -92
- package/lib/LoaderOptionsPlugin.js +36 -36
- package/lib/LoaderTargetPlugin.js +19 -19
- package/lib/MainTemplate.js +3 -1
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleDependencyError.js +22 -22
- package/lib/ModuleDependencyWarning.js +22 -22
- package/lib/ModuleError.js +24 -24
- package/lib/ModuleFilenameHelpers.js +162 -162
- package/lib/ModuleNotFoundError.js +26 -26
- package/lib/ModuleReason.js +50 -50
- package/lib/ModuleTemplate.js +23 -23
- package/lib/ModuleWarning.js +24 -24
- package/lib/MovedToPluginWarningPlugin.js +21 -21
- package/lib/MultiCompiler.js +164 -164
- package/lib/MultiEntryPlugin.js +39 -39
- package/lib/MultiModuleFactory.js +19 -19
- package/lib/MultiStats.js +79 -79
- package/lib/MultiWatching.js +32 -32
- package/lib/NamedChunksPlugin.js +30 -30
- package/lib/NamedModulesPlugin.js +27 -27
- package/lib/NewWatchingPlugin.js +15 -15
- package/lib/NoEmitOnErrorsPlugin.js +22 -22
- package/lib/NoErrorsPlugin.js +29 -29
- package/lib/NodeStuffPlugin.js +97 -97
- package/lib/NormalModuleFactory.js +3 -1
- package/lib/NormalModuleReplacementPlugin.js +45 -45
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/OptionsDefaulter.js +2 -2
- package/lib/Parser.js +79 -0
- package/lib/ParserHelpers.js +85 -85
- package/lib/PrefetchPlugin.js +31 -31
- package/lib/ProgressPlugin.js +192 -192
- package/lib/ProvidePlugin.js +55 -55
- package/lib/RawModule.js +54 -54
- package/lib/RequestShortener.js +63 -63
- package/lib/RequireJsStuffPlugin.js +31 -31
- package/lib/RuleSet.js +444 -444
- package/lib/SetVarMainTemplatePlugin.js +41 -41
- package/lib/SingleEntryPlugin.js +35 -35
- package/lib/SizeFormatHelpers.js +18 -18
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
- package/lib/SourceMapDevToolPlugin.js +3 -3
- package/lib/Stats.js +4 -2
- package/lib/TemplatedPathPlugin.js +6 -2
- package/lib/UmdMainTemplatePlugin.js +1 -1
- package/lib/UnsupportedFeatureWarning.js +21 -21
- package/lib/UseStrictPlugin.js +34 -34
- package/lib/WarnCaseSensitiveModulesPlugin.js +31 -31
- package/lib/WatchIgnorePlugin.js +49 -49
- package/lib/WebpackError.js +11 -11
- package/lib/WebpackOptionsDefaulter.js +130 -129
- package/lib/WebpackOptionsValidationError.js +219 -196
- package/lib/compareLocations.js +36 -36
- package/lib/dependencies/AMDDefineDependency.js +142 -142
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +18 -6
- package/lib/dependencies/AMDPlugin.js +119 -119
- package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
- package/lib/dependencies/AMDRequireDependency.js +67 -67
- package/lib/dependencies/AMDRequireItemDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
- package/lib/dependencies/ConstDependency.js +32 -32
- package/lib/dependencies/ContextDependencyHelpers.js +71 -71
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/CriticalDependencyWarning.js +20 -20
- package/lib/dependencies/DelegatedExportsDependency.js +33 -33
- package/lib/dependencies/DelegatedSourceDependency.js +18 -18
- package/lib/dependencies/DllEntryDependency.js +20 -20
- package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +2 -2
- package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
- package/lib/dependencies/HarmonyImportDependency.js +1 -1
- package/lib/dependencies/ImportDependenciesBlock.js +17 -17
- package/lib/dependencies/ImportEagerContextDependency.js +22 -22
- package/lib/dependencies/ImportLazyContextDependency.js +22 -22
- package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
- package/lib/dependencies/ImportParserPlugin.js +89 -89
- package/lib/dependencies/ImportPlugin.js +60 -60
- package/lib/dependencies/ImportWeakContextDependency.js +22 -22
- package/lib/dependencies/LoaderDependency.js +18 -18
- package/lib/dependencies/LoaderPlugin.js +60 -60
- package/lib/dependencies/LocalModule.js +23 -23
- package/lib/dependencies/LocalModuleDependency.js +24 -24
- package/lib/dependencies/LocalModulesHelpers.js +46 -46
- package/lib/dependencies/ModuleDependency.js +23 -23
- package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
- package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
- package/lib/dependencies/MultiEntryDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +24 -24
- package/lib/dependencies/PrefetchDependency.js +18 -18
- package/lib/dependencies/RequireContextDependency.js +26 -26
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
- package/lib/dependencies/RequireContextPlugin.js +96 -96
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
- package/lib/dependencies/RequireEnsureDependency.js +38 -38
- package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
- package/lib/dependencies/RequireEnsurePlugin.js +40 -40
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependency.js +8 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
- package/lib/dependencies/RequireIncludePlugin.js +33 -33
- package/lib/dependencies/RequireResolveDependency.js +22 -22
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SingleEntryDependency.js +18 -18
- package/lib/dependencies/SystemPlugin.js +44 -44
- package/lib/dependencies/UnsupportedDependency.js +23 -23
- package/lib/dependencies/WebpackMissingModule.js +18 -18
- package/lib/dependencies/getFunctionExpression.js +44 -44
- package/lib/formatLocation.js +54 -54
- package/lib/node/NodeChunkTemplatePlugin.js +27 -27
- package/lib/node/NodeEnvironmentPlugin.js +25 -25
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
- package/lib/node/NodeMainTemplate.runtime.js +24 -24
- package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
- package/lib/node/NodeOutputFileSystem.js +22 -22
- package/lib/node/NodeSourcePlugin.js +88 -88
- package/lib/node/NodeTargetPlugin.js +17 -15
- package/lib/node/NodeTemplatePlugin.js +27 -27
- package/lib/node/NodeWatchFileSystem.js +72 -72
- package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
- package/lib/optimize/ConcatenatedModule.js +17 -6
- package/lib/optimize/DedupePlugin.js +15 -15
- package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
- package/lib/optimize/LimitChunkCountPlugin.js +59 -59
- package/lib/optimize/MinChunkSizePlugin.js +65 -65
- package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
- package/lib/optimize/UglifyJsPlugin.js +9 -9
- package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
- package/lib/performance/NoAsyncChunksWarning.js +20 -20
- package/lib/performance/SizeLimitsPlugin.js +102 -102
- package/lib/prepareOptions.js +29 -29
- package/lib/removeAndDo.js +15 -15
- package/lib/util/Semaphore.js +32 -32
- package/lib/util/identifier.js +38 -38
- package/lib/validateSchema.js +66 -66
- package/lib/web/WebEnvironmentPlugin.js +18 -18
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +2 -2
- package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
- package/package.json +25 -16
- package/schemas/ajv.absolutePath.js +29 -29
- package/schemas/webpackOptionsSchema.json +405 -76
@@ -1,27 +1,27 @@
|
|
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").ConcatSource;
|
8
|
-
|
9
|
-
class JsonpHotUpdateChunkTemplatePlugin {
|
10
|
-
apply(hotUpdateChunkTemplate) {
|
11
|
-
hotUpdateChunkTemplate.plugin("render", function(modulesSource, modules, removedModules, hash, id) {
|
12
|
-
const source = new ConcatSource();
|
13
|
-
source.add(`${this.outputOptions.hotUpdateFunction}(${JSON.stringify(id)},`);
|
14
|
-
source.add(modulesSource);
|
15
|
-
source.add(")");
|
16
|
-
return source;
|
17
|
-
});
|
18
|
-
hotUpdateChunkTemplate.plugin("hash", function(hash) {
|
19
|
-
hash.update("JsonpHotUpdateChunkTemplatePlugin");
|
20
|
-
hash.update("3");
|
21
|
-
hash.update(`${this.outputOptions.hotUpdateFunction}`);
|
22
|
-
hash.update(`${this.outputOptions.library}`);
|
23
|
-
});
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
module.exports = JsonpHotUpdateChunkTemplatePlugin;
|
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").ConcatSource;
|
8
|
+
|
9
|
+
class JsonpHotUpdateChunkTemplatePlugin {
|
10
|
+
apply(hotUpdateChunkTemplate) {
|
11
|
+
hotUpdateChunkTemplate.plugin("render", function(modulesSource, modules, removedModules, hash, id) {
|
12
|
+
const source = new ConcatSource();
|
13
|
+
source.add(`${this.outputOptions.hotUpdateFunction}(${JSON.stringify(id)},`);
|
14
|
+
source.add(modulesSource);
|
15
|
+
source.add(")");
|
16
|
+
return source;
|
17
|
+
});
|
18
|
+
hotUpdateChunkTemplate.plugin("hash", function(hash) {
|
19
|
+
hash.update("JsonpHotUpdateChunkTemplatePlugin");
|
20
|
+
hash.update("3");
|
21
|
+
hash.update(`${this.outputOptions.hotUpdateFunction}`);
|
22
|
+
hash.update(`${this.outputOptions.library}`);
|
23
|
+
});
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
module.exports = JsonpHotUpdateChunkTemplatePlugin;
|
@@ -29,6 +29,7 @@ class JsonpMainTemplatePlugin {
|
|
29
29
|
const chunkMaps = chunk.getChunkMaps();
|
30
30
|
const crossOriginLoading = this.outputOptions.crossOriginLoading;
|
31
31
|
const chunkLoadTimeout = this.outputOptions.chunkLoadTimeout;
|
32
|
+
const jsonpScriptType = this.outputOptions.jsonpScriptType;
|
32
33
|
const scriptSrcPath = this.applyPluginsWaterfall("asset-path", JSON.stringify(chunkFilename), {
|
33
34
|
hash: `" + ${this.renderCurrentHashCode(hash)} + "`,
|
34
35
|
hashWithLength: length => `" + ${this.renderCurrentHashCode(hash, length)} + "`,
|
@@ -48,7 +49,7 @@ class JsonpMainTemplatePlugin {
|
|
48
49
|
});
|
49
50
|
return this.asString([
|
50
51
|
"var script = document.createElement('script');",
|
51
|
-
|
52
|
+
`script.type = ${JSON.stringify(jsonpScriptType)};`,
|
52
53
|
"script.charset = 'utf-8';",
|
53
54
|
"script.async = true;",
|
54
55
|
`script.timeout = ${chunkLoadTimeout};`,
|
@@ -195,8 +196,8 @@ class JsonpMainTemplatePlugin {
|
|
195
196
|
function hotDisposeChunk(chunkId) {
|
196
197
|
delete installedChunks[chunkId];
|
197
198
|
}
|
198
|
-
var parentHotUpdateCallback =
|
199
|
-
|
199
|
+
var parentHotUpdateCallback = window[${JSON.stringify(hotUpdateFunction)}];
|
200
|
+
window[${JSON.stringify(hotUpdateFunction)}] = ${runtimeSource}`;
|
200
201
|
});
|
201
202
|
mainTemplate.plugin("hash", function(hash) {
|
202
203
|
hash.update("jsonp");
|
@@ -1,21 +1,21 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
|
8
|
-
const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
|
9
|
-
const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
|
10
|
-
|
11
|
-
class JsonpTemplatePlugin {
|
12
|
-
apply(compiler) {
|
13
|
-
compiler.plugin("this-compilation", (compilation) => {
|
14
|
-
compilation.mainTemplate.apply(new JsonpMainTemplatePlugin());
|
15
|
-
compilation.chunkTemplate.apply(new JsonpChunkTemplatePlugin());
|
16
|
-
compilation.hotUpdateChunkTemplate.apply(new JsonpHotUpdateChunkTemplatePlugin());
|
17
|
-
});
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
module.exports = JsonpTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
|
8
|
+
const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
|
9
|
+
const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
|
10
|
+
|
11
|
+
class JsonpTemplatePlugin {
|
12
|
+
apply(compiler) {
|
13
|
+
compiler.plugin("this-compilation", (compilation) => {
|
14
|
+
compilation.mainTemplate.apply(new JsonpMainTemplatePlugin());
|
15
|
+
compilation.chunkTemplate.apply(new JsonpChunkTemplatePlugin());
|
16
|
+
compilation.hotUpdateChunkTemplate.apply(new JsonpHotUpdateChunkTemplatePlugin());
|
17
|
+
});
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
module.exports = JsonpTemplatePlugin;
|
package/lib/LibManifestPlugin.js
CHANGED
@@ -1,63 +1,63 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const path = require("path");
|
8
|
-
const asyncLib = require("async");
|
9
|
-
|
10
|
-
class LibManifestPlugin {
|
11
|
-
constructor(options) {
|
12
|
-
this.options = options;
|
13
|
-
}
|
14
|
-
|
15
|
-
apply(compiler) {
|
16
|
-
compiler.plugin("emit", (compilation, callback) => {
|
17
|
-
asyncLib.forEach(compilation.chunks, (chunk, callback) => {
|
18
|
-
if(!chunk.isInitial()) {
|
19
|
-
callback();
|
20
|
-
return;
|
21
|
-
}
|
22
|
-
const targetPath = compilation.getPath(this.options.path, {
|
23
|
-
hash: compilation.hash,
|
24
|
-
chunk
|
25
|
-
});
|
26
|
-
const name = this.options.name && compilation.getPath(this.options.name, {
|
27
|
-
hash: compilation.hash,
|
28
|
-
chunk
|
29
|
-
});
|
30
|
-
const manifest = {
|
31
|
-
name,
|
32
|
-
type: this.options.type,
|
33
|
-
content: chunk.mapModules(module => {
|
34
|
-
if(module.libIdent) {
|
35
|
-
const ident = module.libIdent({
|
36
|
-
context: this.options.context || compiler.options.context
|
37
|
-
});
|
38
|
-
if(ident) {
|
39
|
-
return {
|
40
|
-
ident,
|
41
|
-
data: {
|
42
|
-
id: module.id,
|
43
|
-
meta: module.meta,
|
44
|
-
exports: Array.isArray(module.providedExports) ? module.providedExports : undefined
|
45
|
-
}
|
46
|
-
};
|
47
|
-
}
|
48
|
-
}
|
49
|
-
}).filter(Boolean).reduce((obj, item) => {
|
50
|
-
obj[item.ident] = item.data;
|
51
|
-
return obj;
|
52
|
-
}, Object.create(null))
|
53
|
-
};
|
54
|
-
const content = new Buffer(JSON.stringify(manifest), "utf8"); //eslint-disable-line
|
55
|
-
compiler.outputFileSystem.mkdirp(path.dirname(targetPath), err => {
|
56
|
-
if(err) return callback(err);
|
57
|
-
compiler.outputFileSystem.writeFile(targetPath, content, callback);
|
58
|
-
});
|
59
|
-
}, callback);
|
60
|
-
});
|
61
|
-
}
|
62
|
-
}
|
63
|
-
module.exports = LibManifestPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const path = require("path");
|
8
|
+
const asyncLib = require("async");
|
9
|
+
|
10
|
+
class LibManifestPlugin {
|
11
|
+
constructor(options) {
|
12
|
+
this.options = options;
|
13
|
+
}
|
14
|
+
|
15
|
+
apply(compiler) {
|
16
|
+
compiler.plugin("emit", (compilation, callback) => {
|
17
|
+
asyncLib.forEach(compilation.chunks, (chunk, callback) => {
|
18
|
+
if(!chunk.isInitial()) {
|
19
|
+
callback();
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
const targetPath = compilation.getPath(this.options.path, {
|
23
|
+
hash: compilation.hash,
|
24
|
+
chunk
|
25
|
+
});
|
26
|
+
const name = this.options.name && compilation.getPath(this.options.name, {
|
27
|
+
hash: compilation.hash,
|
28
|
+
chunk
|
29
|
+
});
|
30
|
+
const manifest = {
|
31
|
+
name,
|
32
|
+
type: this.options.type,
|
33
|
+
content: chunk.mapModules(module => {
|
34
|
+
if(module.libIdent) {
|
35
|
+
const ident = module.libIdent({
|
36
|
+
context: this.options.context || compiler.options.context
|
37
|
+
});
|
38
|
+
if(ident) {
|
39
|
+
return {
|
40
|
+
ident,
|
41
|
+
data: {
|
42
|
+
id: module.id,
|
43
|
+
meta: module.meta,
|
44
|
+
exports: Array.isArray(module.providedExports) ? module.providedExports : undefined
|
45
|
+
}
|
46
|
+
};
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}).filter(Boolean).reduce((obj, item) => {
|
50
|
+
obj[item.ident] = item.data;
|
51
|
+
return obj;
|
52
|
+
}, Object.create(null))
|
53
|
+
};
|
54
|
+
const content = new Buffer(JSON.stringify(manifest), "utf8"); //eslint-disable-line
|
55
|
+
compiler.outputFileSystem.mkdirp(path.dirname(targetPath), err => {
|
56
|
+
if(err) return callback(err);
|
57
|
+
compiler.outputFileSystem.writeFile(targetPath, content, callback);
|
58
|
+
});
|
59
|
+
}, callback);
|
60
|
+
});
|
61
|
+
}
|
62
|
+
}
|
63
|
+
module.exports = LibManifestPlugin;
|
@@ -1,92 +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 SetVarMainTemplatePlugin = require("./SetVarMainTemplatePlugin");
|
8
|
-
|
9
|
-
function accessorToObjectAccess(accessor) {
|
10
|
-
return accessor.map((a) => {
|
11
|
-
return `[${JSON.stringify(a)}]`;
|
12
|
-
}).join("");
|
13
|
-
}
|
14
|
-
|
15
|
-
function accessorAccess(base, accessor, joinWith) {
|
16
|
-
accessor = [].concat(accessor);
|
17
|
-
return accessor.map((a, idx) => {
|
18
|
-
a = base ?
|
19
|
-
base + accessorToObjectAccess(accessor.slice(0, idx + 1)) :
|
20
|
-
accessor[0] + accessorToObjectAccess(accessor.slice(1, idx + 1));
|
21
|
-
if(idx === accessor.length - 1) return a;
|
22
|
-
if(idx === 0 && typeof base === "undefined") return `${a} = typeof ${a} === "object" ? ${a} : {}`;
|
23
|
-
return `${a} = ${a} || {}`;
|
24
|
-
}).join(joinWith || "; ");
|
25
|
-
}
|
26
|
-
|
27
|
-
class LibraryTemplatePlugin {
|
28
|
-
|
29
|
-
constructor(name, target, umdNamedDefine, auxiliaryComment, exportProperty) {
|
30
|
-
this.name = name;
|
31
|
-
this.target = target;
|
32
|
-
this.umdNamedDefine = umdNamedDefine;
|
33
|
-
this.auxiliaryComment = auxiliaryComment;
|
34
|
-
this.exportProperty = exportProperty;
|
35
|
-
}
|
36
|
-
|
37
|
-
apply(compiler) {
|
38
|
-
compiler.plugin("this-compilation", (compilation) => {
|
39
|
-
if(this.exportProperty) {
|
40
|
-
var ExportPropertyMainTemplatePlugin = require("./ExportPropertyMainTemplatePlugin");
|
41
|
-
compilation.apply(new ExportPropertyMainTemplatePlugin(this.exportProperty));
|
42
|
-
}
|
43
|
-
switch(this.target) {
|
44
|
-
case "var":
|
45
|
-
compilation.apply(new SetVarMainTemplatePlugin(`var ${accessorAccess(false, this.name)}`));
|
46
|
-
break;
|
47
|
-
case "assign":
|
48
|
-
compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(undefined, this.name)));
|
49
|
-
break;
|
50
|
-
case "this":
|
51
|
-
case "window":
|
52
|
-
case "global":
|
53
|
-
if(this.name)
|
54
|
-
compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(this.target, this.name)));
|
55
|
-
else
|
56
|
-
compilation.apply(new SetVarMainTemplatePlugin(this.target, true));
|
57
|
-
break;
|
58
|
-
case "commonjs":
|
59
|
-
if(this.name)
|
60
|
-
compilation.apply(new SetVarMainTemplatePlugin(accessorAccess("exports", this.name)));
|
61
|
-
else
|
62
|
-
compilation.apply(new SetVarMainTemplatePlugin("exports", true));
|
63
|
-
break;
|
64
|
-
case "commonjs2":
|
65
|
-
case "commonjs-module":
|
66
|
-
compilation.apply(new SetVarMainTemplatePlugin("module.exports"));
|
67
|
-
break;
|
68
|
-
case "amd":
|
69
|
-
var AmdMainTemplatePlugin = require("./AmdMainTemplatePlugin");
|
70
|
-
compilation.apply(new AmdMainTemplatePlugin(this.name));
|
71
|
-
break;
|
72
|
-
case "umd":
|
73
|
-
case "umd2":
|
74
|
-
var UmdMainTemplatePlugin = require("./UmdMainTemplatePlugin");
|
75
|
-
compilation.apply(new UmdMainTemplatePlugin(this.name, {
|
76
|
-
optionalAmdExternalAsGlobal: this.target === "umd2",
|
77
|
-
namedDefine: this.umdNamedDefine,
|
78
|
-
auxiliaryComment: this.auxiliaryComment
|
79
|
-
}));
|
80
|
-
break;
|
81
|
-
case "jsonp":
|
82
|
-
var JsonpExportMainTemplatePlugin = require("./JsonpExportMainTemplatePlugin");
|
83
|
-
compilation.apply(new JsonpExportMainTemplatePlugin(this.name));
|
84
|
-
break;
|
85
|
-
default:
|
86
|
-
throw new Error(`${this.target} is not a valid Library target`);
|
87
|
-
}
|
88
|
-
});
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
module.exports = LibraryTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const SetVarMainTemplatePlugin = require("./SetVarMainTemplatePlugin");
|
8
|
+
|
9
|
+
function accessorToObjectAccess(accessor) {
|
10
|
+
return accessor.map((a) => {
|
11
|
+
return `[${JSON.stringify(a)}]`;
|
12
|
+
}).join("");
|
13
|
+
}
|
14
|
+
|
15
|
+
function accessorAccess(base, accessor, joinWith) {
|
16
|
+
accessor = [].concat(accessor);
|
17
|
+
return accessor.map((a, idx) => {
|
18
|
+
a = base ?
|
19
|
+
base + accessorToObjectAccess(accessor.slice(0, idx + 1)) :
|
20
|
+
accessor[0] + accessorToObjectAccess(accessor.slice(1, idx + 1));
|
21
|
+
if(idx === accessor.length - 1) return a;
|
22
|
+
if(idx === 0 && typeof base === "undefined") return `${a} = typeof ${a} === "object" ? ${a} : {}`;
|
23
|
+
return `${a} = ${a} || {}`;
|
24
|
+
}).join(joinWith || "; ");
|
25
|
+
}
|
26
|
+
|
27
|
+
class LibraryTemplatePlugin {
|
28
|
+
|
29
|
+
constructor(name, target, umdNamedDefine, auxiliaryComment, exportProperty) {
|
30
|
+
this.name = name;
|
31
|
+
this.target = target;
|
32
|
+
this.umdNamedDefine = umdNamedDefine;
|
33
|
+
this.auxiliaryComment = auxiliaryComment;
|
34
|
+
this.exportProperty = exportProperty;
|
35
|
+
}
|
36
|
+
|
37
|
+
apply(compiler) {
|
38
|
+
compiler.plugin("this-compilation", (compilation) => {
|
39
|
+
if(this.exportProperty) {
|
40
|
+
var ExportPropertyMainTemplatePlugin = require("./ExportPropertyMainTemplatePlugin");
|
41
|
+
compilation.apply(new ExportPropertyMainTemplatePlugin(this.exportProperty));
|
42
|
+
}
|
43
|
+
switch(this.target) {
|
44
|
+
case "var":
|
45
|
+
compilation.apply(new SetVarMainTemplatePlugin(`var ${accessorAccess(false, this.name)}`));
|
46
|
+
break;
|
47
|
+
case "assign":
|
48
|
+
compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(undefined, this.name)));
|
49
|
+
break;
|
50
|
+
case "this":
|
51
|
+
case "window":
|
52
|
+
case "global":
|
53
|
+
if(this.name)
|
54
|
+
compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(this.target, this.name)));
|
55
|
+
else
|
56
|
+
compilation.apply(new SetVarMainTemplatePlugin(this.target, true));
|
57
|
+
break;
|
58
|
+
case "commonjs":
|
59
|
+
if(this.name)
|
60
|
+
compilation.apply(new SetVarMainTemplatePlugin(accessorAccess("exports", this.name)));
|
61
|
+
else
|
62
|
+
compilation.apply(new SetVarMainTemplatePlugin("exports", true));
|
63
|
+
break;
|
64
|
+
case "commonjs2":
|
65
|
+
case "commonjs-module":
|
66
|
+
compilation.apply(new SetVarMainTemplatePlugin("module.exports"));
|
67
|
+
break;
|
68
|
+
case "amd":
|
69
|
+
var AmdMainTemplatePlugin = require("./AmdMainTemplatePlugin");
|
70
|
+
compilation.apply(new AmdMainTemplatePlugin(this.name));
|
71
|
+
break;
|
72
|
+
case "umd":
|
73
|
+
case "umd2":
|
74
|
+
var UmdMainTemplatePlugin = require("./UmdMainTemplatePlugin");
|
75
|
+
compilation.apply(new UmdMainTemplatePlugin(this.name, {
|
76
|
+
optionalAmdExternalAsGlobal: this.target === "umd2",
|
77
|
+
namedDefine: this.umdNamedDefine,
|
78
|
+
auxiliaryComment: this.auxiliaryComment
|
79
|
+
}));
|
80
|
+
break;
|
81
|
+
case "jsonp":
|
82
|
+
var JsonpExportMainTemplatePlugin = require("./JsonpExportMainTemplatePlugin");
|
83
|
+
compilation.apply(new JsonpExportMainTemplatePlugin(this.name));
|
84
|
+
break;
|
85
|
+
default:
|
86
|
+
throw new Error(`${this.target} is not a valid Library target`);
|
87
|
+
}
|
88
|
+
});
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
module.exports = LibraryTemplatePlugin;
|
@@ -1,36 +1,36 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
|
8
|
-
|
9
|
-
class LoaderOptionsPlugin {
|
10
|
-
constructor(options) {
|
11
|
-
if(typeof options !== "object") options = {};
|
12
|
-
if(!options.test) options.test = {
|
13
|
-
test: () => true
|
14
|
-
};
|
15
|
-
this.options = options;
|
16
|
-
}
|
17
|
-
|
18
|
-
apply(compiler) {
|
19
|
-
const options = this.options;
|
20
|
-
compiler.plugin("compilation", (compilation) => {
|
21
|
-
compilation.plugin("normal-module-loader", (context, module) => {
|
22
|
-
const resource = module.resource;
|
23
|
-
if(!resource) return;
|
24
|
-
const i = resource.indexOf("?");
|
25
|
-
if(ModuleFilenameHelpers.matchObject(options, i < 0 ? resource : resource.substr(0, i))) {
|
26
|
-
const filterSet = new Set(["include", "exclude", "test"]);
|
27
|
-
Object.keys(options)
|
28
|
-
.filter((key) => !filterSet.has(key))
|
29
|
-
.forEach((key) => context[key] = options[key]);
|
30
|
-
}
|
31
|
-
});
|
32
|
-
});
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
module.exports = LoaderOptionsPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
|
8
|
+
|
9
|
+
class LoaderOptionsPlugin {
|
10
|
+
constructor(options) {
|
11
|
+
if(typeof options !== "object") options = {};
|
12
|
+
if(!options.test) options.test = {
|
13
|
+
test: () => true
|
14
|
+
};
|
15
|
+
this.options = options;
|
16
|
+
}
|
17
|
+
|
18
|
+
apply(compiler) {
|
19
|
+
const options = this.options;
|
20
|
+
compiler.plugin("compilation", (compilation) => {
|
21
|
+
compilation.plugin("normal-module-loader", (context, module) => {
|
22
|
+
const resource = module.resource;
|
23
|
+
if(!resource) return;
|
24
|
+
const i = resource.indexOf("?");
|
25
|
+
if(ModuleFilenameHelpers.matchObject(options, i < 0 ? resource : resource.substr(0, i))) {
|
26
|
+
const filterSet = new Set(["include", "exclude", "test"]);
|
27
|
+
Object.keys(options)
|
28
|
+
.filter((key) => !filterSet.has(key))
|
29
|
+
.forEach((key) => context[key] = options[key]);
|
30
|
+
}
|
31
|
+
});
|
32
|
+
});
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
module.exports = LoaderOptionsPlugin;
|
@@ -1,19 +1,19 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class LoaderTargetPlugin {
|
8
|
-
constructor(target) {
|
9
|
-
this.target = target;
|
10
|
-
}
|
11
|
-
|
12
|
-
apply(compiler) {
|
13
|
-
compiler.plugin("compilation", (compilation) => {
|
14
|
-
compilation.plugin("normal-module-loader", (loaderContext) => loaderContext.target = this.target);
|
15
|
-
});
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
module.exports = LoaderTargetPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class LoaderTargetPlugin {
|
8
|
+
constructor(target) {
|
9
|
+
this.target = target;
|
10
|
+
}
|
11
|
+
|
12
|
+
apply(compiler) {
|
13
|
+
compiler.plugin("compilation", (compilation) => {
|
14
|
+
compilation.plugin("normal-module-loader", (loaderContext) => loaderContext.target = this.target);
|
15
|
+
});
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
module.exports = LoaderTargetPlugin;
|
package/lib/MainTemplate.js
CHANGED
@@ -99,7 +99,9 @@ module.exports = class MainTemplate extends Template {
|
|
99
99
|
});
|
100
100
|
this.plugin("require-extensions", (source, chunk, hash) => {
|
101
101
|
const buf = [];
|
102
|
-
|
102
|
+
const chunkMaps = chunk.getChunkMaps();
|
103
|
+
// Check if there are non initial chunks which need to be imported using require-ensure
|
104
|
+
if(Object.keys(chunkMaps.hash).length) {
|
103
105
|
buf.push("// This file contains only the entry chunk.");
|
104
106
|
buf.push("// The chunk loading function for additional chunks");
|
105
107
|
buf.push(`${this.requireFn}.e = function requireEnsure(chunkId) {`);
|
@@ -1,5 +1,5 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
module.exports = require("memory-fs");
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
module.exports = require("memory-fs");
|
package/lib/ModuleBuildError.js
CHANGED
@@ -1,42 +1,42 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const WebpackError = require("./WebpackError");
|
8
|
-
const cutOffLoaderExecution = require("./ErrorHelpers").cutOffLoaderExecution;
|
9
|
-
|
10
|
-
class ModuleBuildError extends WebpackError {
|
11
|
-
constructor(module, err) {
|
12
|
-
super();
|
13
|
-
|
14
|
-
this.name = "ModuleBuildError";
|
15
|
-
this.message = "Module build failed: ";
|
16
|
-
if(err !== null && typeof err === "object") {
|
17
|
-
if(typeof err.stack === "string" && err.stack) {
|
18
|
-
var stack = cutOffLoaderExecution(err.stack);
|
19
|
-
if(!err.hideStack) {
|
20
|
-
this.message += stack;
|
21
|
-
} else {
|
22
|
-
this.details = stack;
|
23
|
-
if(typeof err.message === "string" && err.message) {
|
24
|
-
this.message += err.message;
|
25
|
-
} else {
|
26
|
-
this.message += err;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
} else if(typeof err.message === "string" && err.message) {
|
30
|
-
this.message += err.message;
|
31
|
-
} else {
|
32
|
-
this.message += err;
|
33
|
-
}
|
34
|
-
}
|
35
|
-
this.module = module;
|
36
|
-
this.error = err;
|
37
|
-
|
38
|
-
Error.captureStackTrace(this, this.constructor);
|
39
|
-
}
|
40
|
-
}
|
41
|
-
|
42
|
-
module.exports = ModuleBuildError;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const WebpackError = require("./WebpackError");
|
8
|
+
const cutOffLoaderExecution = require("./ErrorHelpers").cutOffLoaderExecution;
|
9
|
+
|
10
|
+
class ModuleBuildError extends WebpackError {
|
11
|
+
constructor(module, err) {
|
12
|
+
super();
|
13
|
+
|
14
|
+
this.name = "ModuleBuildError";
|
15
|
+
this.message = "Module build failed: ";
|
16
|
+
if(err !== null && typeof err === "object") {
|
17
|
+
if(typeof err.stack === "string" && err.stack) {
|
18
|
+
var stack = cutOffLoaderExecution(err.stack);
|
19
|
+
if(!err.hideStack) {
|
20
|
+
this.message += stack;
|
21
|
+
} else {
|
22
|
+
this.details = stack;
|
23
|
+
if(typeof err.message === "string" && err.message) {
|
24
|
+
this.message += err.message;
|
25
|
+
} else {
|
26
|
+
this.message += err;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
} else if(typeof err.message === "string" && err.message) {
|
30
|
+
this.message += err.message;
|
31
|
+
} else {
|
32
|
+
this.message += err;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
this.module = module;
|
36
|
+
this.error = err;
|
37
|
+
|
38
|
+
Error.captureStackTrace(this, this.constructor);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
module.exports = ModuleBuildError;
|