webpack 3.8.0 → 3.8.1
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 +716 -716
- 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 +51 -51
- package/lib/APIPlugin.js +45 -45
- package/lib/AsyncDependenciesBlock.js +43 -43
- package/lib/AutomaticPrefetchPlugin.js +36 -36
- package/lib/BasicEvaluatedExpression.js +203 -203
- package/lib/CaseSensitiveModulesWarning.js +49 -49
- package/lib/ChunkRenderError.js +24 -24
- package/lib/ChunkTemplate.js +36 -36
- package/lib/CompatibilityPlugin.js +57 -57
- package/lib/Compiler.js +523 -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 +50 -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/FunctionModulePlugin.js +24 -24
- package/lib/HashedModuleIdsPlugin.js +42 -42
- 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/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/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/NormalModuleReplacementPlugin.js +45 -45
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- 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/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 +129 -129
- package/lib/WebpackOptionsValidationError.js +196 -196
- package/lib/compareLocations.js +36 -36
- package/lib/dependencies/AMDDefineDependency.js +142 -142
- 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/HarmonyExportHeaderDependency.js +28 -28
- 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/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 +15 -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/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/WebWorkerTemplatePlugin.js +20 -20
- package/package.json +1 -1
- package/schemas/ajv.absolutePath.js +29 -29
- package/schemas/webpackOptionsSchema.json +16 -0
package/lib/ProvidePlugin.js
CHANGED
@@ -1,55 +1,55 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const ParserHelpers = require("./ParserHelpers");
|
8
|
-
const ConstDependency = require("./dependencies/ConstDependency");
|
9
|
-
|
10
|
-
const NullFactory = require("./NullFactory");
|
11
|
-
|
12
|
-
class ProvidePlugin {
|
13
|
-
constructor(definitions) {
|
14
|
-
this.definitions = definitions;
|
15
|
-
}
|
16
|
-
|
17
|
-
apply(compiler) {
|
18
|
-
const definitions = this.definitions;
|
19
|
-
compiler.plugin("compilation", (compilation, params) => {
|
20
|
-
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
|
21
|
-
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
|
22
|
-
params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
|
23
|
-
Object.keys(definitions).forEach(name => {
|
24
|
-
var request = [].concat(definitions[name]);
|
25
|
-
var splittedName = name.split(".");
|
26
|
-
if(splittedName.length > 0) {
|
27
|
-
splittedName.slice(1).forEach((_, i) => {
|
28
|
-
const name = splittedName.slice(0, i + 1).join(".");
|
29
|
-
parser.plugin(`can-rename ${name}`, ParserHelpers.approve);
|
30
|
-
});
|
31
|
-
}
|
32
|
-
parser.plugin(`expression ${name}`, function(expr) {
|
33
|
-
let nameIdentifier = name;
|
34
|
-
const scopedName = name.indexOf(".") >= 0;
|
35
|
-
let expression = `require(${JSON.stringify(request[0])})`;
|
36
|
-
if(scopedName) {
|
37
|
-
nameIdentifier = `__webpack_provided_${name.replace(/\./g, "_dot_")}`;
|
38
|
-
}
|
39
|
-
if(request.length > 1) {
|
40
|
-
expression += request.slice(1).map(r => `[${JSON.stringify(r)}]`).join("");
|
41
|
-
}
|
42
|
-
if(!ParserHelpers.addParsedVariableToModule(this, nameIdentifier, expression)) {
|
43
|
-
return false;
|
44
|
-
}
|
45
|
-
if(scopedName) {
|
46
|
-
ParserHelpers.toConstantDependency(nameIdentifier).bind(this)(expr);
|
47
|
-
}
|
48
|
-
return true;
|
49
|
-
});
|
50
|
-
});
|
51
|
-
});
|
52
|
-
});
|
53
|
-
}
|
54
|
-
}
|
55
|
-
module.exports = ProvidePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const ParserHelpers = require("./ParserHelpers");
|
8
|
+
const ConstDependency = require("./dependencies/ConstDependency");
|
9
|
+
|
10
|
+
const NullFactory = require("./NullFactory");
|
11
|
+
|
12
|
+
class ProvidePlugin {
|
13
|
+
constructor(definitions) {
|
14
|
+
this.definitions = definitions;
|
15
|
+
}
|
16
|
+
|
17
|
+
apply(compiler) {
|
18
|
+
const definitions = this.definitions;
|
19
|
+
compiler.plugin("compilation", (compilation, params) => {
|
20
|
+
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
|
21
|
+
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
|
22
|
+
params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
|
23
|
+
Object.keys(definitions).forEach(name => {
|
24
|
+
var request = [].concat(definitions[name]);
|
25
|
+
var splittedName = name.split(".");
|
26
|
+
if(splittedName.length > 0) {
|
27
|
+
splittedName.slice(1).forEach((_, i) => {
|
28
|
+
const name = splittedName.slice(0, i + 1).join(".");
|
29
|
+
parser.plugin(`can-rename ${name}`, ParserHelpers.approve);
|
30
|
+
});
|
31
|
+
}
|
32
|
+
parser.plugin(`expression ${name}`, function(expr) {
|
33
|
+
let nameIdentifier = name;
|
34
|
+
const scopedName = name.indexOf(".") >= 0;
|
35
|
+
let expression = `require(${JSON.stringify(request[0])})`;
|
36
|
+
if(scopedName) {
|
37
|
+
nameIdentifier = `__webpack_provided_${name.replace(/\./g, "_dot_")}`;
|
38
|
+
}
|
39
|
+
if(request.length > 1) {
|
40
|
+
expression += request.slice(1).map(r => `[${JSON.stringify(r)}]`).join("");
|
41
|
+
}
|
42
|
+
if(!ParserHelpers.addParsedVariableToModule(this, nameIdentifier, expression)) {
|
43
|
+
return false;
|
44
|
+
}
|
45
|
+
if(scopedName) {
|
46
|
+
ParserHelpers.toConstantDependency(nameIdentifier).bind(this)(expr);
|
47
|
+
}
|
48
|
+
return true;
|
49
|
+
});
|
50
|
+
});
|
51
|
+
});
|
52
|
+
});
|
53
|
+
}
|
54
|
+
}
|
55
|
+
module.exports = ProvidePlugin;
|
package/lib/RawModule.js
CHANGED
@@ -1,54 +1,54 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const Module = require("./Module");
|
8
|
-
const OriginalSource = require("webpack-sources").OriginalSource;
|
9
|
-
const RawSource = require("webpack-sources").RawSource;
|
10
|
-
|
11
|
-
module.exports = class RawModule extends Module {
|
12
|
-
|
13
|
-
constructor(source, identifier, readableIdentifier) {
|
14
|
-
super();
|
15
|
-
this.sourceStr = source;
|
16
|
-
this.identifierStr = identifier || this.sourceStr;
|
17
|
-
this.readableIdentifierStr = readableIdentifier || this.identifierStr;
|
18
|
-
this.cacheable = true;
|
19
|
-
this.built = false;
|
20
|
-
}
|
21
|
-
|
22
|
-
identifier() {
|
23
|
-
return this.identifierStr;
|
24
|
-
}
|
25
|
-
|
26
|
-
size() {
|
27
|
-
return this.sourceStr.length;
|
28
|
-
}
|
29
|
-
|
30
|
-
readableIdentifier(requestShortener) {
|
31
|
-
return requestShortener.shorten(this.readableIdentifierStr);
|
32
|
-
}
|
33
|
-
|
34
|
-
needRebuild() {
|
35
|
-
return false;
|
36
|
-
}
|
37
|
-
|
38
|
-
build(options, compilations, resolver, fs, callback) {
|
39
|
-
this.builtTime = Date.now();
|
40
|
-
callback();
|
41
|
-
}
|
42
|
-
|
43
|
-
source() {
|
44
|
-
if(this.useSourceMap)
|
45
|
-
return new OriginalSource(this.sourceStr, this.identifier());
|
46
|
-
else
|
47
|
-
return new RawSource(this.sourceStr);
|
48
|
-
}
|
49
|
-
|
50
|
-
updateHash(hash) {
|
51
|
-
hash.update(this.sourceStr);
|
52
|
-
super.updateHash(hash);
|
53
|
-
}
|
54
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Module = require("./Module");
|
8
|
+
const OriginalSource = require("webpack-sources").OriginalSource;
|
9
|
+
const RawSource = require("webpack-sources").RawSource;
|
10
|
+
|
11
|
+
module.exports = class RawModule extends Module {
|
12
|
+
|
13
|
+
constructor(source, identifier, readableIdentifier) {
|
14
|
+
super();
|
15
|
+
this.sourceStr = source;
|
16
|
+
this.identifierStr = identifier || this.sourceStr;
|
17
|
+
this.readableIdentifierStr = readableIdentifier || this.identifierStr;
|
18
|
+
this.cacheable = true;
|
19
|
+
this.built = false;
|
20
|
+
}
|
21
|
+
|
22
|
+
identifier() {
|
23
|
+
return this.identifierStr;
|
24
|
+
}
|
25
|
+
|
26
|
+
size() {
|
27
|
+
return this.sourceStr.length;
|
28
|
+
}
|
29
|
+
|
30
|
+
readableIdentifier(requestShortener) {
|
31
|
+
return requestShortener.shorten(this.readableIdentifierStr);
|
32
|
+
}
|
33
|
+
|
34
|
+
needRebuild() {
|
35
|
+
return false;
|
36
|
+
}
|
37
|
+
|
38
|
+
build(options, compilations, resolver, fs, callback) {
|
39
|
+
this.builtTime = Date.now();
|
40
|
+
callback();
|
41
|
+
}
|
42
|
+
|
43
|
+
source() {
|
44
|
+
if(this.useSourceMap)
|
45
|
+
return new OriginalSource(this.sourceStr, this.identifier());
|
46
|
+
else
|
47
|
+
return new RawSource(this.sourceStr);
|
48
|
+
}
|
49
|
+
|
50
|
+
updateHash(hash) {
|
51
|
+
hash.update(this.sourceStr);
|
52
|
+
super.updateHash(hash);
|
53
|
+
}
|
54
|
+
};
|
package/lib/RequestShortener.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 NORMALIZE_SLASH_DIRECTION_REGEXP = /\\/g;
|
9
|
-
const PATH_CHARS_REGEXP = /[-[\]{}()*+?.,\\^$|#\s]/g;
|
10
|
-
const SEPARATOR_REGEXP = /[/\\]$/;
|
11
|
-
const FRONT_OR_BACK_BANG_REGEXP = /^!|!$/g;
|
12
|
-
const INDEX_JS_REGEXP = /\/index.js(!|\?|\(query\))/g;
|
13
|
-
|
14
|
-
const normalizeBackSlashDirection = (request) => {
|
15
|
-
return request.replace(NORMALIZE_SLASH_DIRECTION_REGEXP, "/");
|
16
|
-
};
|
17
|
-
|
18
|
-
const createRegExpForPath = (path) => {
|
19
|
-
const regexpTypePartial = path.replace(PATH_CHARS_REGEXP, "\\$&");
|
20
|
-
return new RegExp(`(^|!)${regexpTypePartial}`, "g");
|
21
|
-
};
|
22
|
-
|
23
|
-
class RequestShortener {
|
24
|
-
constructor(directory) {
|
25
|
-
directory = normalizeBackSlashDirection(directory);
|
26
|
-
if(SEPARATOR_REGEXP.test(directory)) directory = directory.substr(0, directory.length - 1);
|
27
|
-
|
28
|
-
if(directory) {
|
29
|
-
this.currentDirectoryRegExp = createRegExpForPath(directory);
|
30
|
-
}
|
31
|
-
|
32
|
-
const dirname = path.dirname(directory);
|
33
|
-
const endsWithSeperator = SEPARATOR_REGEXP.test(dirname);
|
34
|
-
const parentDirectory = endsWithSeperator ? dirname.substr(0, dirname.length - 1) : dirname;
|
35
|
-
if(parentDirectory && parentDirectory !== directory) {
|
36
|
-
this.parentDirectoryRegExp = createRegExpForPath(parentDirectory);
|
37
|
-
}
|
38
|
-
|
39
|
-
if(__dirname.length >= 2) {
|
40
|
-
const buildins = normalizeBackSlashDirection(path.join(__dirname, ".."));
|
41
|
-
const buildinsAsModule = this.currentDirectoryRegExp && this.currentDirectoryRegExp.test(buildins);
|
42
|
-
this.buildinsAsModule = buildinsAsModule;
|
43
|
-
this.buildinsRegExp = createRegExpForPath(buildins);
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
shorten(request) {
|
48
|
-
if(!request) return request;
|
49
|
-
request = normalizeBackSlashDirection(request);
|
50
|
-
if(this.buildinsAsModule && this.buildinsRegExp)
|
51
|
-
request = request.replace(this.buildinsRegExp, "!(webpack)");
|
52
|
-
if(this.currentDirectoryRegExp)
|
53
|
-
request = request.replace(this.currentDirectoryRegExp, "!.");
|
54
|
-
if(this.parentDirectoryRegExp)
|
55
|
-
request = request.replace(this.parentDirectoryRegExp, "!..");
|
56
|
-
if(!this.buildinsAsModule && this.buildinsRegExp)
|
57
|
-
request = request.replace(this.buildinsRegExp, "!(webpack)");
|
58
|
-
request = request.replace(INDEX_JS_REGEXP, "$1");
|
59
|
-
return request.replace(FRONT_OR_BACK_BANG_REGEXP, "");
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
module.exports = RequestShortener;
|
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 NORMALIZE_SLASH_DIRECTION_REGEXP = /\\/g;
|
9
|
+
const PATH_CHARS_REGEXP = /[-[\]{}()*+?.,\\^$|#\s]/g;
|
10
|
+
const SEPARATOR_REGEXP = /[/\\]$/;
|
11
|
+
const FRONT_OR_BACK_BANG_REGEXP = /^!|!$/g;
|
12
|
+
const INDEX_JS_REGEXP = /\/index.js(!|\?|\(query\))/g;
|
13
|
+
|
14
|
+
const normalizeBackSlashDirection = (request) => {
|
15
|
+
return request.replace(NORMALIZE_SLASH_DIRECTION_REGEXP, "/");
|
16
|
+
};
|
17
|
+
|
18
|
+
const createRegExpForPath = (path) => {
|
19
|
+
const regexpTypePartial = path.replace(PATH_CHARS_REGEXP, "\\$&");
|
20
|
+
return new RegExp(`(^|!)${regexpTypePartial}`, "g");
|
21
|
+
};
|
22
|
+
|
23
|
+
class RequestShortener {
|
24
|
+
constructor(directory) {
|
25
|
+
directory = normalizeBackSlashDirection(directory);
|
26
|
+
if(SEPARATOR_REGEXP.test(directory)) directory = directory.substr(0, directory.length - 1);
|
27
|
+
|
28
|
+
if(directory) {
|
29
|
+
this.currentDirectoryRegExp = createRegExpForPath(directory);
|
30
|
+
}
|
31
|
+
|
32
|
+
const dirname = path.dirname(directory);
|
33
|
+
const endsWithSeperator = SEPARATOR_REGEXP.test(dirname);
|
34
|
+
const parentDirectory = endsWithSeperator ? dirname.substr(0, dirname.length - 1) : dirname;
|
35
|
+
if(parentDirectory && parentDirectory !== directory) {
|
36
|
+
this.parentDirectoryRegExp = createRegExpForPath(parentDirectory);
|
37
|
+
}
|
38
|
+
|
39
|
+
if(__dirname.length >= 2) {
|
40
|
+
const buildins = normalizeBackSlashDirection(path.join(__dirname, ".."));
|
41
|
+
const buildinsAsModule = this.currentDirectoryRegExp && this.currentDirectoryRegExp.test(buildins);
|
42
|
+
this.buildinsAsModule = buildinsAsModule;
|
43
|
+
this.buildinsRegExp = createRegExpForPath(buildins);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
shorten(request) {
|
48
|
+
if(!request) return request;
|
49
|
+
request = normalizeBackSlashDirection(request);
|
50
|
+
if(this.buildinsAsModule && this.buildinsRegExp)
|
51
|
+
request = request.replace(this.buildinsRegExp, "!(webpack)");
|
52
|
+
if(this.currentDirectoryRegExp)
|
53
|
+
request = request.replace(this.currentDirectoryRegExp, "!.");
|
54
|
+
if(this.parentDirectoryRegExp)
|
55
|
+
request = request.replace(this.parentDirectoryRegExp, "!..");
|
56
|
+
if(!this.buildinsAsModule && this.buildinsRegExp)
|
57
|
+
request = request.replace(this.buildinsRegExp, "!(webpack)");
|
58
|
+
request = request.replace(INDEX_JS_REGEXP, "$1");
|
59
|
+
return request.replace(FRONT_OR_BACK_BANG_REGEXP, "");
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
module.exports = RequestShortener;
|
@@ -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 ParserHelpers = require("./ParserHelpers");
|
8
|
-
const ConstDependency = require("./dependencies/ConstDependency");
|
9
|
-
const NullFactory = require("./NullFactory");
|
10
|
-
|
11
|
-
module.exports = class RequireJsStuffPlugin {
|
12
|
-
|
13
|
-
apply(compiler) {
|
14
|
-
compiler.plugin("compilation", function(compilation, params) {
|
15
|
-
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
|
16
|
-
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
|
17
|
-
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
|
18
|
-
|
19
|
-
if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs)
|
20
|
-
return;
|
21
|
-
|
22
|
-
parser.plugin("call require.config", ParserHelpers.toConstantDependency("undefined"));
|
23
|
-
parser.plugin("call requirejs.config", ParserHelpers.toConstantDependency("undefined"));
|
24
|
-
|
25
|
-
parser.plugin("expression require.version", ParserHelpers.toConstantDependency(JSON.stringify("0.0.0")));
|
26
|
-
parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency("__webpack_require__.oe"));
|
27
|
-
});
|
28
|
-
});
|
29
|
-
}
|
30
|
-
|
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 ParserHelpers = require("./ParserHelpers");
|
8
|
+
const ConstDependency = require("./dependencies/ConstDependency");
|
9
|
+
const NullFactory = require("./NullFactory");
|
10
|
+
|
11
|
+
module.exports = class RequireJsStuffPlugin {
|
12
|
+
|
13
|
+
apply(compiler) {
|
14
|
+
compiler.plugin("compilation", function(compilation, params) {
|
15
|
+
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
|
16
|
+
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
|
17
|
+
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
|
18
|
+
|
19
|
+
if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs)
|
20
|
+
return;
|
21
|
+
|
22
|
+
parser.plugin("call require.config", ParserHelpers.toConstantDependency("undefined"));
|
23
|
+
parser.plugin("call requirejs.config", ParserHelpers.toConstantDependency("undefined"));
|
24
|
+
|
25
|
+
parser.plugin("expression require.version", ParserHelpers.toConstantDependency(JSON.stringify("0.0.0")));
|
26
|
+
parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency("__webpack_require__.oe"));
|
27
|
+
});
|
28
|
+
});
|
29
|
+
}
|
30
|
+
|
31
|
+
};
|