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,41 +1,41 @@
|
|
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 SetVarMainTemplatePlugin {
|
10
|
-
constructor(varExpression, copyObject) {
|
11
|
-
this.varExpression = varExpression;
|
12
|
-
this.copyObject = copyObject;
|
13
|
-
}
|
14
|
-
|
15
|
-
apply(compilation) {
|
16
|
-
const mainTemplate = compilation.mainTemplate;
|
17
|
-
compilation.templatesPlugin("render-with-entry", (source, chunk, hash) => {
|
18
|
-
const varExpression = mainTemplate.applyPluginsWaterfall("asset-path", this.varExpression, {
|
19
|
-
hash,
|
20
|
-
chunk
|
21
|
-
});
|
22
|
-
if(this.copyObject) {
|
23
|
-
return new ConcatSource(`(function(e, a) { for(var i in a) e[i] = a[i]; }(${varExpression}, `, source, "))");
|
24
|
-
} else {
|
25
|
-
const prefix = `${varExpression} =\n`;
|
26
|
-
return new ConcatSource(prefix, source);
|
27
|
-
}
|
28
|
-
});
|
29
|
-
mainTemplate.plugin("global-hash-paths", (paths) => {
|
30
|
-
if(this.varExpression) paths.push(this.varExpression);
|
31
|
-
return paths;
|
32
|
-
});
|
33
|
-
mainTemplate.plugin("hash", hash => {
|
34
|
-
hash.update("set var");
|
35
|
-
hash.update(`${this.varExpression}`);
|
36
|
-
hash.update(`${this.copyObject}`);
|
37
|
-
});
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
module.exports = SetVarMainTemplatePlugin;
|
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 SetVarMainTemplatePlugin {
|
10
|
+
constructor(varExpression, copyObject) {
|
11
|
+
this.varExpression = varExpression;
|
12
|
+
this.copyObject = copyObject;
|
13
|
+
}
|
14
|
+
|
15
|
+
apply(compilation) {
|
16
|
+
const mainTemplate = compilation.mainTemplate;
|
17
|
+
compilation.templatesPlugin("render-with-entry", (source, chunk, hash) => {
|
18
|
+
const varExpression = mainTemplate.applyPluginsWaterfall("asset-path", this.varExpression, {
|
19
|
+
hash,
|
20
|
+
chunk
|
21
|
+
});
|
22
|
+
if(this.copyObject) {
|
23
|
+
return new ConcatSource(`(function(e, a) { for(var i in a) e[i] = a[i]; }(${varExpression}, `, source, "))");
|
24
|
+
} else {
|
25
|
+
const prefix = `${varExpression} =\n`;
|
26
|
+
return new ConcatSource(prefix, source);
|
27
|
+
}
|
28
|
+
});
|
29
|
+
mainTemplate.plugin("global-hash-paths", (paths) => {
|
30
|
+
if(this.varExpression) paths.push(this.varExpression);
|
31
|
+
return paths;
|
32
|
+
});
|
33
|
+
mainTemplate.plugin("hash", hash => {
|
34
|
+
hash.update("set var");
|
35
|
+
hash.update(`${this.varExpression}`);
|
36
|
+
hash.update(`${this.copyObject}`);
|
37
|
+
});
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
module.exports = SetVarMainTemplatePlugin;
|
package/lib/SingleEntryPlugin.js
CHANGED
@@ -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
|
-
const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
|
7
|
-
|
8
|
-
class SingleEntryPlugin {
|
9
|
-
constructor(context, entry, name) {
|
10
|
-
this.context = context;
|
11
|
-
this.entry = entry;
|
12
|
-
this.name = name;
|
13
|
-
}
|
14
|
-
|
15
|
-
apply(compiler) {
|
16
|
-
compiler.plugin("compilation", (compilation, params) => {
|
17
|
-
const normalModuleFactory = params.normalModuleFactory;
|
18
|
-
|
19
|
-
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
|
20
|
-
});
|
21
|
-
|
22
|
-
compiler.plugin("make", (compilation, callback) => {
|
23
|
-
const dep = SingleEntryPlugin.createDependency(this.entry, this.name);
|
24
|
-
compilation.addEntry(this.context, dep, this.name, callback);
|
25
|
-
});
|
26
|
-
}
|
27
|
-
|
28
|
-
static createDependency(entry, name) {
|
29
|
-
const dep = new SingleEntryDependency(entry);
|
30
|
-
dep.loc = name;
|
31
|
-
return dep;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
module.exports = SingleEntryPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
|
7
|
+
|
8
|
+
class SingleEntryPlugin {
|
9
|
+
constructor(context, entry, name) {
|
10
|
+
this.context = context;
|
11
|
+
this.entry = entry;
|
12
|
+
this.name = name;
|
13
|
+
}
|
14
|
+
|
15
|
+
apply(compiler) {
|
16
|
+
compiler.plugin("compilation", (compilation, params) => {
|
17
|
+
const normalModuleFactory = params.normalModuleFactory;
|
18
|
+
|
19
|
+
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
|
20
|
+
});
|
21
|
+
|
22
|
+
compiler.plugin("make", (compilation, callback) => {
|
23
|
+
const dep = SingleEntryPlugin.createDependency(this.entry, this.name);
|
24
|
+
compilation.addEntry(this.context, dep, this.name, callback);
|
25
|
+
});
|
26
|
+
}
|
27
|
+
|
28
|
+
static createDependency(entry, name) {
|
29
|
+
const dep = new SingleEntryDependency(entry);
|
30
|
+
dep.loc = name;
|
31
|
+
return dep;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
module.exports = SingleEntryPlugin;
|
package/lib/SizeFormatHelpers.js
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Sean Larkin @thelarkinn
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const SizeFormatHelpers = exports;
|
8
|
-
|
9
|
-
SizeFormatHelpers.formatSize = size => {
|
10
|
-
if(size <= 0) {
|
11
|
-
return "0 bytes";
|
12
|
-
}
|
13
|
-
|
14
|
-
const abbreviations = ["bytes", "kB", "MB", "GB"];
|
15
|
-
const index = Math.floor(Math.log(size) / Math.log(1000));
|
16
|
-
|
17
|
-
return `${+(size / Math.pow(1000, index)).toPrecision(3)} ${abbreviations[index]}`;
|
18
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Sean Larkin @thelarkinn
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const SizeFormatHelpers = exports;
|
8
|
+
|
9
|
+
SizeFormatHelpers.formatSize = size => {
|
10
|
+
if(size <= 0) {
|
11
|
+
return "0 bytes";
|
12
|
+
}
|
13
|
+
|
14
|
+
const abbreviations = ["bytes", "kB", "MB", "GB"];
|
15
|
+
const index = Math.floor(Math.log(size) / Math.log(1000));
|
16
|
+
|
17
|
+
return `${+(size / Math.pow(1000, index)).toPrecision(3)} ${abbreviations[index]}`;
|
18
|
+
};
|
@@ -1,37 +1,37 @@
|
|
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 SourceMapDevToolModuleOptionsPlugin {
|
10
|
-
constructor(options) {
|
11
|
-
this.options = options;
|
12
|
-
}
|
13
|
-
|
14
|
-
apply(compilation) {
|
15
|
-
const options = this.options;
|
16
|
-
if(options.module !== false) {
|
17
|
-
compilation.plugin("build-module", module => {
|
18
|
-
module.useSourceMap = true;
|
19
|
-
});
|
20
|
-
}
|
21
|
-
if(options.lineToLine === true) {
|
22
|
-
compilation.plugin("build-module", module => {
|
23
|
-
module.lineToLine = true;
|
24
|
-
});
|
25
|
-
} else if(options.lineToLine) {
|
26
|
-
compilation.plugin("build-module", module => {
|
27
|
-
if(!module.resource) return;
|
28
|
-
let resourcePath = module.resource;
|
29
|
-
const idx = resourcePath.indexOf("?");
|
30
|
-
if(idx >= 0) resourcePath = resourcePath.substr(0, idx);
|
31
|
-
module.lineToLine = ModuleFilenameHelpers.matchObject(options.lineToLine, resourcePath);
|
32
|
-
});
|
33
|
-
}
|
34
|
-
}
|
35
|
-
}
|
36
|
-
|
37
|
-
module.exports = SourceMapDevToolModuleOptionsPlugin;
|
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 SourceMapDevToolModuleOptionsPlugin {
|
10
|
+
constructor(options) {
|
11
|
+
this.options = options;
|
12
|
+
}
|
13
|
+
|
14
|
+
apply(compilation) {
|
15
|
+
const options = this.options;
|
16
|
+
if(options.module !== false) {
|
17
|
+
compilation.plugin("build-module", module => {
|
18
|
+
module.useSourceMap = true;
|
19
|
+
});
|
20
|
+
}
|
21
|
+
if(options.lineToLine === true) {
|
22
|
+
compilation.plugin("build-module", module => {
|
23
|
+
module.lineToLine = true;
|
24
|
+
});
|
25
|
+
} else if(options.lineToLine) {
|
26
|
+
compilation.plugin("build-module", module => {
|
27
|
+
if(!module.resource) return;
|
28
|
+
let resourcePath = module.resource;
|
29
|
+
const idx = resourcePath.indexOf("?");
|
30
|
+
if(idx >= 0) resourcePath = resourcePath.substr(0, idx);
|
31
|
+
module.lineToLine = ModuleFilenameHelpers.matchObject(options.lineToLine, resourcePath);
|
32
|
+
});
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
module.exports = SourceMapDevToolModuleOptionsPlugin;
|
@@ -158,7 +158,7 @@ class SourceMapDevToolPlugin {
|
|
158
158
|
const moduleFilenames = modules.map(m => moduleToSourceNameMapping.get(m));
|
159
159
|
sourceMap.sources = moduleFilenames;
|
160
160
|
if(sourceMap.sourcesContent && !options.noSources) {
|
161
|
-
sourceMap.sourcesContent = sourceMap.sourcesContent.map((content, i) => `${content}\n\n\n${ModuleFilenameHelpers.createFooter(modules[i], requestShortener)}`);
|
161
|
+
sourceMap.sourcesContent = sourceMap.sourcesContent.map((content, i) => typeof content === "string" ? `${content}\n\n\n${ModuleFilenameHelpers.createFooter(modules[i], requestShortener)}` : null);
|
162
162
|
} else {
|
163
163
|
sourceMap.sourcesContent = undefined;
|
164
164
|
}
|
@@ -181,14 +181,14 @@ class SourceMapDevToolPlugin {
|
|
181
181
|
}
|
182
182
|
let sourceMapFile = compilation.getPath(sourceMapFilename, {
|
183
183
|
chunk,
|
184
|
-
filename,
|
184
|
+
filename: options.fileContext ? path.relative(options.fileContext, filename) : filename,
|
185
185
|
query,
|
186
186
|
basename: basename(filename)
|
187
187
|
});
|
188
188
|
if(sourceMapFile.indexOf("[contenthash]") !== -1) {
|
189
189
|
sourceMapFile = sourceMapFile.replace(/\[contenthash\]/g, crypto.createHash("md5").update(sourceMapString).digest("hex"));
|
190
190
|
}
|
191
|
-
const sourceMapUrl = path.relative(path.dirname(file), sourceMapFile).replace(/\\/g, "/");
|
191
|
+
const sourceMapUrl = options.publicPath ? options.publicPath + sourceMapFile.replace(/\\/g, "/") : path.relative(path.dirname(file), sourceMapFile).replace(/\\/g, "/");
|
192
192
|
if(currentSourceMappingURLComment !== false) {
|
193
193
|
asset.__SourceMapDevToolData[file] = compilation.assets[file] = new ConcatSource(new RawSource(source), currentSourceMappingURLComment.replace(/\[url\]/g, sourceMapUrl));
|
194
194
|
}
|
package/lib/Stats.js
CHANGED
@@ -50,11 +50,13 @@ class Stats {
|
|
50
50
|
}
|
51
51
|
|
52
52
|
hasWarnings() {
|
53
|
-
return this.compilation.warnings.length > 0
|
53
|
+
return this.compilation.warnings.length > 0 ||
|
54
|
+
this.compilation.children.some(child => child.getStats().hasWarnings());
|
54
55
|
}
|
55
56
|
|
56
57
|
hasErrors() {
|
57
|
-
return this.compilation.errors.length > 0
|
58
|
+
return this.compilation.errors.length > 0 ||
|
59
|
+
this.compilation.children.some(child => child.getStats().hasErrors());
|
58
60
|
}
|
59
61
|
|
60
62
|
// remove a prefixed "!" that can be specified to reverse sort order
|
@@ -60,6 +60,10 @@ const replacePathVariables = (path, data) => {
|
|
60
60
|
const chunkHash = chunk && (chunk.renderedHash || chunk.hash);
|
61
61
|
const chunkHashWithLength = chunk && chunk.hashWithLength;
|
62
62
|
|
63
|
+
if(typeof path === "function") {
|
64
|
+
path = path(data);
|
65
|
+
}
|
66
|
+
|
63
67
|
if(data.noChunkHash && REGEXP_CHUNKHASH_FOR_TEST.test(path)) {
|
64
68
|
throw new Error(`Cannot use [chunkhash] for chunk in '${path}' (use [hash] instead)`);
|
65
69
|
}
|
@@ -101,9 +105,9 @@ class TemplatedPathPlugin {
|
|
101
105
|
const outputOptions = this.outputOptions;
|
102
106
|
const chunkFilename = outputOptions.chunkFilename || outputOptions.filename;
|
103
107
|
if(REGEXP_CHUNKHASH_FOR_TEST.test(chunkFilename))
|
104
|
-
hash.update(JSON.stringify(chunk.getChunkMaps(
|
108
|
+
hash.update(JSON.stringify(chunk.getChunkMaps(false, true).hash));
|
105
109
|
if(REGEXP_NAME_FOR_TEST.test(chunkFilename))
|
106
|
-
hash.update(JSON.stringify(chunk.getChunkMaps(
|
110
|
+
hash.update(JSON.stringify(chunk.getChunkMaps(false, true).name));
|
107
111
|
});
|
108
112
|
});
|
109
113
|
}
|
@@ -171,7 +171,7 @@ class UmdMainTemplatePlugin {
|
|
171
171
|
" for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n" +
|
172
172
|
" }\n"
|
173
173
|
) +
|
174
|
-
"})(this, function(" + externalsArguments(externals) + ") {\nreturn ", "webpack/universalModuleDefinition"), source, ";\n})");
|
174
|
+
"})(typeof self !== 'undefined' ? self : this, function(" + externalsArguments(externals) + ") {\nreturn ", "webpack/universalModuleDefinition"), source, ";\n})");
|
175
175
|
});
|
176
176
|
mainTemplate.plugin("global-hash-paths", (paths) => {
|
177
177
|
if(this.names.root) paths = paths.concat(this.names.root);
|
@@ -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 WebpackError = require("./WebpackError");
|
8
|
-
|
9
|
-
class UnsupportedFeatureWarning extends WebpackError {
|
10
|
-
constructor(module, message) {
|
11
|
-
super();
|
12
|
-
|
13
|
-
this.name = "UnsupportedFeatureWarning";
|
14
|
-
this.message = message;
|
15
|
-
this.origin = this.module = module;
|
16
|
-
|
17
|
-
Error.captureStackTrace(this, this.constructor);
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
module.exports = UnsupportedFeatureWarning;
|
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
|
+
|
9
|
+
class UnsupportedFeatureWarning extends WebpackError {
|
10
|
+
constructor(module, message) {
|
11
|
+
super();
|
12
|
+
|
13
|
+
this.name = "UnsupportedFeatureWarning";
|
14
|
+
this.message = message;
|
15
|
+
this.origin = this.module = module;
|
16
|
+
|
17
|
+
Error.captureStackTrace(this, this.constructor);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
module.exports = UnsupportedFeatureWarning;
|
package/lib/UseStrictPlugin.js
CHANGED
@@ -1,34 +1,34 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const ConstDependency = require("./dependencies/ConstDependency");
|
8
|
-
|
9
|
-
class UseStrictPlugin {
|
10
|
-
apply(compiler) {
|
11
|
-
compiler.plugin("compilation", (compilation, params) => {
|
12
|
-
params.normalModuleFactory.plugin("parser", (parser) => {
|
13
|
-
const parserInstance = parser;
|
14
|
-
parser.plugin("program", (ast) => {
|
15
|
-
const firstNode = ast.body[0];
|
16
|
-
if(firstNode &&
|
17
|
-
firstNode.type === "ExpressionStatement" &&
|
18
|
-
firstNode.expression.type === "Literal" &&
|
19
|
-
firstNode.expression.value === "use strict") {
|
20
|
-
// Remove "use strict" expression. It will be added later by the renderer again.
|
21
|
-
// This is necessary in order to not break the strict mode when webpack prepends code.
|
22
|
-
// @see https://github.com/webpack/webpack/issues/1970
|
23
|
-
const dep = new ConstDependency("", firstNode.range);
|
24
|
-
dep.loc = firstNode.loc;
|
25
|
-
parserInstance.state.current.addDependency(dep);
|
26
|
-
parserInstance.state.module.strict = true;
|
27
|
-
}
|
28
|
-
});
|
29
|
-
});
|
30
|
-
});
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
module.exports = UseStrictPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const ConstDependency = require("./dependencies/ConstDependency");
|
8
|
+
|
9
|
+
class UseStrictPlugin {
|
10
|
+
apply(compiler) {
|
11
|
+
compiler.plugin("compilation", (compilation, params) => {
|
12
|
+
params.normalModuleFactory.plugin("parser", (parser) => {
|
13
|
+
const parserInstance = parser;
|
14
|
+
parser.plugin("program", (ast) => {
|
15
|
+
const firstNode = ast.body[0];
|
16
|
+
if(firstNode &&
|
17
|
+
firstNode.type === "ExpressionStatement" &&
|
18
|
+
firstNode.expression.type === "Literal" &&
|
19
|
+
firstNode.expression.value === "use strict") {
|
20
|
+
// Remove "use strict" expression. It will be added later by the renderer again.
|
21
|
+
// This is necessary in order to not break the strict mode when webpack prepends code.
|
22
|
+
// @see https://github.com/webpack/webpack/issues/1970
|
23
|
+
const dep = new ConstDependency("", firstNode.range);
|
24
|
+
dep.loc = firstNode.loc;
|
25
|
+
parserInstance.state.current.addDependency(dep);
|
26
|
+
parserInstance.state.module.strict = true;
|
27
|
+
}
|
28
|
+
});
|
29
|
+
});
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
module.exports = UseStrictPlugin;
|
@@ -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
|
-
|
7
|
-
const CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning");
|
8
|
-
|
9
|
-
class WarnCaseSensitiveModulesPlugin {
|
10
|
-
apply(compiler) {
|
11
|
-
compiler.plugin("compilation", compilation => {
|
12
|
-
compilation.plugin("seal", () => {
|
13
|
-
const moduleWithoutCase = Object.create(null);
|
14
|
-
compilation.modules.forEach(module => {
|
15
|
-
const identifier = module.identifier().toLowerCase();
|
16
|
-
if(moduleWithoutCase[identifier]) {
|
17
|
-
moduleWithoutCase[identifier].push(module);
|
18
|
-
} else {
|
19
|
-
moduleWithoutCase[identifier] = [module];
|
20
|
-
}
|
21
|
-
});
|
22
|
-
Object.keys(moduleWithoutCase).forEach(key => {
|
23
|
-
if(moduleWithoutCase[key].length > 1)
|
24
|
-
compilation.warnings.push(new CaseSensitiveModulesWarning(moduleWithoutCase[key]));
|
25
|
-
});
|
26
|
-
});
|
27
|
-
});
|
28
|
-
}
|
29
|
-
}
|
30
|
-
|
31
|
-
module.exports = WarnCaseSensitiveModulesPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning");
|
8
|
+
|
9
|
+
class WarnCaseSensitiveModulesPlugin {
|
10
|
+
apply(compiler) {
|
11
|
+
compiler.plugin("compilation", compilation => {
|
12
|
+
compilation.plugin("seal", () => {
|
13
|
+
const moduleWithoutCase = Object.create(null);
|
14
|
+
compilation.modules.forEach(module => {
|
15
|
+
const identifier = module.identifier().toLowerCase();
|
16
|
+
if(moduleWithoutCase[identifier]) {
|
17
|
+
moduleWithoutCase[identifier].push(module);
|
18
|
+
} else {
|
19
|
+
moduleWithoutCase[identifier] = [module];
|
20
|
+
}
|
21
|
+
});
|
22
|
+
Object.keys(moduleWithoutCase).forEach(key => {
|
23
|
+
if(moduleWithoutCase[key].length > 1)
|
24
|
+
compilation.warnings.push(new CaseSensitiveModulesWarning(moduleWithoutCase[key]));
|
25
|
+
});
|
26
|
+
});
|
27
|
+
});
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
module.exports = WarnCaseSensitiveModulesPlugin;
|
package/lib/WatchIgnorePlugin.js
CHANGED
@@ -1,49 +1,49 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class WatchIgnorePlugin {
|
8
|
-
constructor(paths) {
|
9
|
-
this.paths = paths;
|
10
|
-
}
|
11
|
-
|
12
|
-
apply(compiler) {
|
13
|
-
compiler.plugin("after-environment", () => {
|
14
|
-
compiler.watchFileSystem = new IgnoringWatchFileSystem(compiler.watchFileSystem, this.paths);
|
15
|
-
});
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
module.exports = WatchIgnorePlugin;
|
20
|
-
|
21
|
-
class IgnoringWatchFileSystem {
|
22
|
-
constructor(wfs, paths) {
|
23
|
-
this.wfs = wfs;
|
24
|
-
this.paths = paths;
|
25
|
-
}
|
26
|
-
|
27
|
-
watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
|
28
|
-
const ignored = path => this.paths.some(p => p instanceof RegExp ? p.test(path) : path.indexOf(p) === 0);
|
29
|
-
|
30
|
-
const notIgnored = path => !ignored(path);
|
31
|
-
|
32
|
-
const ignoredFiles = files.filter(ignored);
|
33
|
-
const ignoredDirs = dirs.filter(ignored);
|
34
|
-
|
35
|
-
this.wfs.watch(files.filter(notIgnored), dirs.filter(notIgnored), missing, startTime, options, (err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps) => {
|
36
|
-
if(err) return callback(err);
|
37
|
-
|
38
|
-
ignoredFiles.forEach(path => {
|
39
|
-
fileTimestamps[path] = 1;
|
40
|
-
});
|
41
|
-
|
42
|
-
ignoredDirs.forEach(path => {
|
43
|
-
dirTimestamps[path] = 1;
|
44
|
-
});
|
45
|
-
|
46
|
-
callback(err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps);
|
47
|
-
}, callbackUndelayed);
|
48
|
-
}
|
49
|
-
}
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class WatchIgnorePlugin {
|
8
|
+
constructor(paths) {
|
9
|
+
this.paths = paths;
|
10
|
+
}
|
11
|
+
|
12
|
+
apply(compiler) {
|
13
|
+
compiler.plugin("after-environment", () => {
|
14
|
+
compiler.watchFileSystem = new IgnoringWatchFileSystem(compiler.watchFileSystem, this.paths);
|
15
|
+
});
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
module.exports = WatchIgnorePlugin;
|
20
|
+
|
21
|
+
class IgnoringWatchFileSystem {
|
22
|
+
constructor(wfs, paths) {
|
23
|
+
this.wfs = wfs;
|
24
|
+
this.paths = paths;
|
25
|
+
}
|
26
|
+
|
27
|
+
watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
|
28
|
+
const ignored = path => this.paths.some(p => p instanceof RegExp ? p.test(path) : path.indexOf(p) === 0);
|
29
|
+
|
30
|
+
const notIgnored = path => !ignored(path);
|
31
|
+
|
32
|
+
const ignoredFiles = files.filter(ignored);
|
33
|
+
const ignoredDirs = dirs.filter(ignored);
|
34
|
+
|
35
|
+
this.wfs.watch(files.filter(notIgnored), dirs.filter(notIgnored), missing, startTime, options, (err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps) => {
|
36
|
+
if(err) return callback(err);
|
37
|
+
|
38
|
+
ignoredFiles.forEach(path => {
|
39
|
+
fileTimestamps[path] = 1;
|
40
|
+
});
|
41
|
+
|
42
|
+
ignoredDirs.forEach(path => {
|
43
|
+
dirTimestamps[path] = 1;
|
44
|
+
});
|
45
|
+
|
46
|
+
callback(err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps);
|
47
|
+
}, callbackUndelayed);
|
48
|
+
}
|
49
|
+
}
|
package/lib/WebpackError.js
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Jarid Margolin @jaridmargolin
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
module.exports = class WebpackError extends Error {
|
8
|
-
inspect() {
|
9
|
-
return this.stack + (this.details ? `\n${this.details}` : "");
|
10
|
-
}
|
11
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Jarid Margolin @jaridmargolin
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
module.exports = class WebpackError extends Error {
|
8
|
+
inspect() {
|
9
|
+
return this.stack + (this.details ? `\n${this.details}` : "");
|
10
|
+
}
|
11
|
+
};
|