webpack 4.15.0 → 4.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +761 -758
- package/SECURITY.md +9 -9
- package/buildin/amd-define.js +3 -3
- package/buildin/amd-options.js +2 -2
- package/buildin/global.js +20 -20
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/buildin/system.js +7 -7
- package/hot/dev-server.js +61 -61
- package/hot/emitter.js +2 -2
- package/hot/log-apply-result.js +44 -44
- package/hot/log.js +45 -45
- package/hot/only-dev-server.js +105 -105
- package/hot/poll.js +40 -37
- package/hot/signal.js +62 -62
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +87 -87
- package/lib/AsyncDependencyToInitialChunkError.js +31 -31
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +117 -117
- package/lib/BasicEvaluatedExpression.js +211 -211
- package/lib/CachePlugin.js +102 -102
- package/lib/CaseSensitiveModulesWarning.js +67 -67
- package/lib/Chunk.js +833 -811
- package/lib/ChunkGroup.js +4 -4
- package/lib/ChunkRenderError.js +32 -32
- package/lib/CommentCompilationWarning.js +2 -2
- package/lib/CompatibilityPlugin.js +70 -70
- package/lib/Compilation.js +46 -15
- package/lib/ConcurrentCompilationError.js +19 -19
- package/lib/ConstPlugin.js +258 -258
- package/lib/ContextExclusionPlugin.js +28 -17
- package/lib/ContextModule.js +844 -739
- package/lib/ContextModuleFactory.js +262 -256
- package/lib/ContextReplacementPlugin.js +133 -133
- package/lib/DefinePlugin.js +49 -0
- package/lib/DelegatedModule.js +5 -0
- package/lib/DelegatedModuleFactoryPlugin.js +95 -89
- package/lib/DelegatedPlugin.js +39 -39
- package/lib/DependenciesBlock.js +1 -1
- package/lib/Dependency.js +10 -4
- package/lib/DllModule.js +60 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/DllPlugin.js +44 -44
- package/lib/DllReferencePlugin.js +132 -84
- package/lib/EntryModuleNotFoundError.js +21 -21
- package/lib/Entrypoint.js +54 -54
- package/lib/EnvironmentPlugin.js +72 -65
- package/lib/ErrorHelpers.js +60 -60
- package/lib/EvalDevToolModulePlugin.js +27 -27
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +115 -115
- package/lib/EvalSourceMapDevToolPlugin.js +41 -41
- package/lib/ExportPropertyMainTemplatePlugin.js +53 -53
- package/lib/ExternalModule.js +165 -159
- package/lib/ExternalsPlugin.js +23 -23
- package/lib/FlagDependencyExportsPlugin.js +146 -146
- package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
- package/lib/FunctionModuleTemplatePlugin.js +100 -100
- package/lib/Generator.js +60 -52
- package/lib/HarmonyLinkingError.js +17 -17
- package/lib/HashedModuleIdsPlugin.js +53 -53
- package/lib/HotModuleReplacementPlugin.js +411 -413
- package/lib/IgnorePlugin.js +90 -90
- package/lib/JavascriptGenerator.js +229 -229
- package/lib/JavascriptModulesPlugin.js +179 -179
- package/lib/JsonGenerator.js +55 -55
- package/lib/JsonModulesPlugin.js +30 -30
- package/lib/JsonParser.js +27 -27
- package/lib/LibManifestPlugin.js +86 -86
- package/lib/LibraryTemplatePlugin.js +153 -153
- package/lib/LoaderOptionsPlugin.js +53 -53
- package/lib/LoaderTargetPlugin.js +24 -24
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/Module.js +431 -391
- package/lib/ModuleBuildError.js +52 -52
- package/lib/ModuleDependencyError.js +35 -35
- package/lib/ModuleDependencyWarning.js +25 -25
- package/lib/ModuleError.js +36 -36
- package/lib/ModuleFilenameHelpers.js +178 -178
- package/lib/ModuleNotFoundError.js +23 -23
- package/lib/ModuleParseError.js +57 -57
- package/lib/ModuleTemplate.js +93 -93
- package/lib/ModuleWarning.js +36 -36
- package/lib/MultiCompiler.js +283 -283
- package/lib/MultiModule.js +87 -81
- package/lib/MultiModuleFactory.js +23 -23
- package/lib/MultiStats.js +92 -92
- package/lib/MultiWatching.js +38 -38
- package/lib/NamedChunksPlugin.js +29 -29
- package/lib/NamedModulesPlugin.js +57 -57
- package/lib/NoEmitOnErrorsPlugin.js +20 -20
- package/lib/NoModeWarning.js +23 -23
- package/lib/NodeStuffPlugin.js +197 -179
- package/lib/NormalModule.js +542 -536
- package/lib/NormalModuleFactory.js +526 -526
- package/lib/NormalModuleReplacementPlugin.js +51 -51
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/OptionsDefaulter.js +84 -84
- package/lib/Parser.js +2202 -2193
- package/lib/ParserHelpers.js +103 -103
- package/lib/PrefetchPlugin.js +37 -37
- package/lib/ProgressPlugin.js +246 -246
- package/lib/ProvidePlugin.js +86 -86
- package/lib/RawModule.js +56 -56
- package/lib/RecordIdsPlugin.js +230 -230
- package/lib/RemovedPluginError.js +11 -11
- package/lib/RequestShortener.js +83 -83
- package/lib/RequireJsStuffPlugin.js +69 -69
- package/lib/ResolverFactory.js +64 -64
- package/lib/RuntimeTemplate.js +12 -0
- package/lib/SetVarMainTemplatePlugin.js +69 -69
- package/lib/SingleEntryPlugin.js +6 -1
- package/lib/SizeFormatHelpers.js +24 -24
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
- package/lib/SourceMapDevToolPlugin.js +301 -301
- package/lib/Stats.js +28 -5
- package/lib/TemplatedPathPlugin.js +173 -173
- package/lib/UnsupportedFeatureWarning.js +22 -22
- package/lib/UseStrictPlugin.js +54 -54
- package/lib/WarnCaseSensitiveModulesPlugin.js +37 -37
- package/lib/WarnNoModeSetPlugin.js +17 -17
- package/lib/WatchIgnorePlugin.js +100 -100
- package/lib/Watching.js +194 -194
- package/lib/WebpackOptionsApply.js +92 -10
- package/lib/WebpackOptionsDefaulter.js +368 -354
- package/lib/debug/ProfilingPlugin.js +430 -430
- package/lib/dependencies/AMDPlugin.js +250 -250
- package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependency.js +135 -135
- package/lib/dependencies/AMDRequireItemDependency.js +22 -22
- package/lib/dependencies/CommonJsPlugin.js +161 -161
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +6 -0
- package/lib/dependencies/ConstDependency.js +33 -33
- package/lib/dependencies/ContextDependency.js +68 -68
- package/lib/dependencies/ContextDependencyHelpers.js +142 -142
- package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/CriticalDependencyWarning.js +20 -20
- package/lib/dependencies/DelegatedSourceDependency.js +18 -18
- package/lib/dependencies/DllEntryDependency.js +20 -20
- package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
- package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -92
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
- package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +2 -1
- package/lib/dependencies/HarmonyImportDependency.js +109 -109
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +222 -222
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +167 -167
- package/lib/dependencies/HarmonyInitDependency.js +60 -60
- package/lib/dependencies/HarmonyModulesPlugin.js +146 -146
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -26
- package/lib/dependencies/ImportContextDependency.js +23 -23
- package/lib/dependencies/ImportDependenciesBlock.js +18 -18
- package/lib/dependencies/ImportDependency.js +34 -34
- package/lib/dependencies/ImportEagerDependency.js +32 -32
- package/lib/dependencies/ImportParserPlugin.js +263 -263
- package/lib/dependencies/ImportPlugin.js +82 -82
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/LoaderPlugin.js +18 -1
- package/lib/dependencies/LocalModule.js +23 -23
- package/lib/dependencies/LocalModulesHelpers.js +52 -52
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
- package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
- package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/PrefetchDependency.js +18 -18
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
- package/lib/dependencies/RequireContextPlugin.js +143 -143
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -116
- package/lib/dependencies/RequireEnsureDependency.js +58 -58
- package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
- package/lib/dependencies/RequireEnsurePlugin.js +74 -74
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
- package/lib/dependencies/RequireIncludePlugin.js +61 -61
- package/lib/dependencies/RequireResolveContextDependency.js +23 -23
- package/lib/dependencies/RequireResolveDependency.js +22 -22
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SystemPlugin.js +125 -125
- package/lib/dependencies/UnsupportedDependency.js +27 -27
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +29 -29
- package/lib/dependencies/WebAssemblyImportDependency.js +48 -48
- package/lib/dependencies/WebpackMissingModule.js +20 -20
- package/lib/formatLocation.js +75 -61
- package/lib/node/NodeChunkTemplatePlugin.js +31 -31
- package/lib/node/NodeEnvironmentPlugin.js +28 -28
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -36
- package/lib/node/NodeMainTemplate.runtime.js +27 -27
- package/lib/node/NodeMainTemplatePlugin.js +323 -323
- package/lib/node/NodeOutputFileSystem.js +22 -22
- package/lib/node/NodeSourcePlugin.js +144 -144
- package/lib/node/NodeTargetPlugin.js +18 -18
- package/lib/node/NodeTemplatePlugin.js +31 -31
- package/lib/node/NodeWatchFileSystem.js +99 -99
- package/lib/node/ReadFileCompileWasmTemplatePlugin.js +61 -61
- package/lib/optimize/AggressiveMergingPlugin.js +87 -87
- package/lib/optimize/AggressiveSplittingPlugin.js +287 -287
- package/lib/optimize/ConcatenatedModule.js +5 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -70
- package/lib/optimize/FlagIncludedChunksPlugin.js +99 -99
- package/lib/optimize/LimitChunkCountPlugin.js +66 -66
- package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -78
- package/lib/optimize/MinChunkSizePlugin.js +77 -77
- package/lib/optimize/NaturalChunkOrderPlugin.js +41 -0
- package/lib/optimize/OccurrenceChunkOrderPlugin.js +61 -0
- package/lib/optimize/OccurrenceModuleOrderPlugin.js +103 -0
- package/lib/optimize/OccurrenceOrderPlugin.js +135 -133
- package/lib/optimize/RemoveEmptyChunksPlugin.js +42 -42
- package/lib/optimize/RemoveParentModulesPlugin.js +127 -127
- package/lib/optimize/RuntimeChunkPlugin.js +41 -41
- package/lib/optimize/SideEffectsFlagPlugin.js +168 -168
- package/lib/optimize/SplitChunksPlugin.js +866 -850
- package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +30 -30
- package/lib/performance/NoAsyncChunksWarning.js +21 -21
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/SortableSet.js +1 -0
- package/lib/util/StackedSetMap.js +144 -135
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/cachedMerge.js +35 -35
- package/lib/util/deterministicGrouping.js +251 -251
- package/lib/util/identifier.js +103 -103
- package/lib/util/objectToMap.js +16 -16
- package/lib/validateSchema.js +67 -67
- package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +17 -17
- package/lib/wasm/WasmFinalizeExportsPlugin.js +1 -1
- package/lib/wasm/WebAssemblyGenerator.js +16 -2
- package/lib/wasm/WebAssemblyJavascriptGenerator.js +147 -133
- package/lib/wasm/WebAssemblyParser.js +174 -174
- package/lib/wasm/WebAssemblyUtils.js +59 -59
- package/lib/web/FetchCompileWasmTemplatePlugin.js +37 -37
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplate.runtime.js +65 -65
- package/lib/web/JsonpMainTemplatePlugin.js +1 -1
- package/lib/web/JsonpTemplatePlugin.js +23 -23
- package/lib/web/WebEnvironmentPlugin.js +18 -18
- package/lib/webpack.js +5 -0
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -65
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +196 -196
- package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
- package/package.json +22 -13
- package/schemas/WebpackOptions.json +2062 -2036
- package/schemas/ajv.absolutePath.js +55 -55
- package/schemas/plugins/BannerPlugin.json +96 -96
- package/schemas/plugins/DllPlugin.json +32 -32
- package/schemas/plugins/DllReferencePlugin.json +99 -99
- package/schemas/plugins/HashedModuleIdsPlugin.json +24 -24
- package/schemas/plugins/LoaderOptionsPlugin.json +26 -26
- package/schemas/plugins/SourceMapDevToolPlugin.json +187 -187
- package/schemas/plugins/WatchIgnorePlugin.json +16 -16
- package/schemas/plugins/debug/ProfilingPlugin.json +12 -12
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +22 -22
- package/schemas/plugins/optimize/LimitChunkCountPlugin.json +15 -15
- package/schemas/plugins/optimize/MinChunkSizePlugin.json +13 -13
- package/schemas/plugins/optimize/OccurrenceOrderChunkIdsPlugin.json +10 -0
- package/schemas/plugins/optimize/OccurrenceOrderModuleIdsPlugin.json +10 -0
@@ -1,125 +1,125 @@
|
|
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 WebpackError = require("../WebpackError");
|
9
|
-
|
10
|
-
class SystemPlugin {
|
11
|
-
constructor(options) {
|
12
|
-
this.options = options;
|
13
|
-
}
|
14
|
-
|
15
|
-
apply(compiler) {
|
16
|
-
compiler.hooks.compilation.tap(
|
17
|
-
"SystemPlugin",
|
18
|
-
(compilation, { normalModuleFactory }) => {
|
19
|
-
const handler = (parser, parserOptions) => {
|
20
|
-
if (
|
21
|
-
typeof parserOptions.system !== "undefined" &&
|
22
|
-
!parserOptions.system
|
23
|
-
)
|
24
|
-
return;
|
25
|
-
|
26
|
-
const shouldWarn = typeof parserOptions.system === "undefined";
|
27
|
-
|
28
|
-
const setNotSupported = name => {
|
29
|
-
parser.hooks.evaluateTypeof
|
30
|
-
.for(name)
|
31
|
-
.tap("SystemPlugin", ParserHelpers.evaluateToString("undefined"));
|
32
|
-
parser.hooks.expression
|
33
|
-
.for(name)
|
34
|
-
.tap(
|
35
|
-
"SystemPlugin",
|
36
|
-
ParserHelpers.expressionIsUnsupported(
|
37
|
-
parser,
|
38
|
-
name + " is not supported by webpack."
|
39
|
-
)
|
40
|
-
);
|
41
|
-
};
|
42
|
-
|
43
|
-
parser.hooks.typeof
|
44
|
-
.for("System.import")
|
45
|
-
.tap(
|
46
|
-
"SystemPlugin",
|
47
|
-
ParserHelpers.toConstantDependency(
|
48
|
-
parser,
|
49
|
-
JSON.stringify("function")
|
50
|
-
)
|
51
|
-
);
|
52
|
-
parser.hooks.evaluateTypeof
|
53
|
-
.for("System.import")
|
54
|
-
.tap("SystemPlugin", ParserHelpers.evaluateToString("function"));
|
55
|
-
parser.hooks.typeof
|
56
|
-
.for("System")
|
57
|
-
.tap(
|
58
|
-
"SystemPlugin",
|
59
|
-
ParserHelpers.toConstantDependency(
|
60
|
-
parser,
|
61
|
-
JSON.stringify("object")
|
62
|
-
)
|
63
|
-
);
|
64
|
-
parser.hooks.evaluateTypeof
|
65
|
-
.for("System")
|
66
|
-
.tap("SystemPlugin", ParserHelpers.evaluateToString("object"));
|
67
|
-
|
68
|
-
setNotSupported("System.set");
|
69
|
-
setNotSupported("System.get");
|
70
|
-
setNotSupported("System.register");
|
71
|
-
|
72
|
-
parser.hooks.expression.for("System").tap("SystemPlugin", () => {
|
73
|
-
const systemPolyfillRequire = ParserHelpers.requireFileAsExpression(
|
74
|
-
parser.state.module.context,
|
75
|
-
require.resolve("../../buildin/system
|
76
|
-
);
|
77
|
-
return ParserHelpers.addParsedVariableToModule(
|
78
|
-
parser,
|
79
|
-
"System",
|
80
|
-
systemPolyfillRequire
|
81
|
-
);
|
82
|
-
});
|
83
|
-
|
84
|
-
parser.hooks.call.for("System.import").tap("SystemPlugin", expr => {
|
85
|
-
if (shouldWarn) {
|
86
|
-
parser.state.module.warnings.push(
|
87
|
-
new SystemImportDeprecationWarning(
|
88
|
-
parser.state.module,
|
89
|
-
expr.loc
|
90
|
-
)
|
91
|
-
);
|
92
|
-
}
|
93
|
-
|
94
|
-
return parser.hooks.importCall.call(expr);
|
95
|
-
});
|
96
|
-
};
|
97
|
-
|
98
|
-
normalModuleFactory.hooks.parser
|
99
|
-
.for("javascript/auto")
|
100
|
-
.tap("SystemPlugin", handler);
|
101
|
-
normalModuleFactory.hooks.parser
|
102
|
-
.for("javascript/dynamic")
|
103
|
-
.tap("SystemPlugin", handler);
|
104
|
-
}
|
105
|
-
);
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
class SystemImportDeprecationWarning extends WebpackError {
|
110
|
-
constructor(module, loc) {
|
111
|
-
super(
|
112
|
-
"System.import() is deprecated and will be removed soon. Use import() instead.\n" +
|
113
|
-
"For more info visit https://webpack.js.org/guides/code-splitting/"
|
114
|
-
);
|
115
|
-
|
116
|
-
this.name = "SystemImportDeprecationWarning";
|
117
|
-
|
118
|
-
this.module = module;
|
119
|
-
this.loc = loc;
|
120
|
-
|
121
|
-
Error.captureStackTrace(this, this.constructor);
|
122
|
-
}
|
123
|
-
}
|
124
|
-
|
125
|
-
module.exports = SystemPlugin;
|
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 WebpackError = require("../WebpackError");
|
9
|
+
|
10
|
+
class SystemPlugin {
|
11
|
+
constructor(options) {
|
12
|
+
this.options = options;
|
13
|
+
}
|
14
|
+
|
15
|
+
apply(compiler) {
|
16
|
+
compiler.hooks.compilation.tap(
|
17
|
+
"SystemPlugin",
|
18
|
+
(compilation, { normalModuleFactory }) => {
|
19
|
+
const handler = (parser, parserOptions) => {
|
20
|
+
if (
|
21
|
+
typeof parserOptions.system !== "undefined" &&
|
22
|
+
!parserOptions.system
|
23
|
+
)
|
24
|
+
return;
|
25
|
+
|
26
|
+
const shouldWarn = typeof parserOptions.system === "undefined";
|
27
|
+
|
28
|
+
const setNotSupported = name => {
|
29
|
+
parser.hooks.evaluateTypeof
|
30
|
+
.for(name)
|
31
|
+
.tap("SystemPlugin", ParserHelpers.evaluateToString("undefined"));
|
32
|
+
parser.hooks.expression
|
33
|
+
.for(name)
|
34
|
+
.tap(
|
35
|
+
"SystemPlugin",
|
36
|
+
ParserHelpers.expressionIsUnsupported(
|
37
|
+
parser,
|
38
|
+
name + " is not supported by webpack."
|
39
|
+
)
|
40
|
+
);
|
41
|
+
};
|
42
|
+
|
43
|
+
parser.hooks.typeof
|
44
|
+
.for("System.import")
|
45
|
+
.tap(
|
46
|
+
"SystemPlugin",
|
47
|
+
ParserHelpers.toConstantDependency(
|
48
|
+
parser,
|
49
|
+
JSON.stringify("function")
|
50
|
+
)
|
51
|
+
);
|
52
|
+
parser.hooks.evaluateTypeof
|
53
|
+
.for("System.import")
|
54
|
+
.tap("SystemPlugin", ParserHelpers.evaluateToString("function"));
|
55
|
+
parser.hooks.typeof
|
56
|
+
.for("System")
|
57
|
+
.tap(
|
58
|
+
"SystemPlugin",
|
59
|
+
ParserHelpers.toConstantDependency(
|
60
|
+
parser,
|
61
|
+
JSON.stringify("object")
|
62
|
+
)
|
63
|
+
);
|
64
|
+
parser.hooks.evaluateTypeof
|
65
|
+
.for("System")
|
66
|
+
.tap("SystemPlugin", ParserHelpers.evaluateToString("object"));
|
67
|
+
|
68
|
+
setNotSupported("System.set");
|
69
|
+
setNotSupported("System.get");
|
70
|
+
setNotSupported("System.register");
|
71
|
+
|
72
|
+
parser.hooks.expression.for("System").tap("SystemPlugin", () => {
|
73
|
+
const systemPolyfillRequire = ParserHelpers.requireFileAsExpression(
|
74
|
+
parser.state.module.context,
|
75
|
+
require.resolve("../../buildin/system")
|
76
|
+
);
|
77
|
+
return ParserHelpers.addParsedVariableToModule(
|
78
|
+
parser,
|
79
|
+
"System",
|
80
|
+
systemPolyfillRequire
|
81
|
+
);
|
82
|
+
});
|
83
|
+
|
84
|
+
parser.hooks.call.for("System.import").tap("SystemPlugin", expr => {
|
85
|
+
if (shouldWarn) {
|
86
|
+
parser.state.module.warnings.push(
|
87
|
+
new SystemImportDeprecationWarning(
|
88
|
+
parser.state.module,
|
89
|
+
expr.loc
|
90
|
+
)
|
91
|
+
);
|
92
|
+
}
|
93
|
+
|
94
|
+
return parser.hooks.importCall.call(expr);
|
95
|
+
});
|
96
|
+
};
|
97
|
+
|
98
|
+
normalModuleFactory.hooks.parser
|
99
|
+
.for("javascript/auto")
|
100
|
+
.tap("SystemPlugin", handler);
|
101
|
+
normalModuleFactory.hooks.parser
|
102
|
+
.for("javascript/dynamic")
|
103
|
+
.tap("SystemPlugin", handler);
|
104
|
+
}
|
105
|
+
);
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
class SystemImportDeprecationWarning extends WebpackError {
|
110
|
+
constructor(module, loc) {
|
111
|
+
super(
|
112
|
+
"System.import() is deprecated and will be removed soon. Use import() instead.\n" +
|
113
|
+
"For more info visit https://webpack.js.org/guides/code-splitting/"
|
114
|
+
);
|
115
|
+
|
116
|
+
this.name = "SystemImportDeprecationWarning";
|
117
|
+
|
118
|
+
this.module = module;
|
119
|
+
this.loc = loc;
|
120
|
+
|
121
|
+
Error.captureStackTrace(this, this.constructor);
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
module.exports = SystemPlugin;
|
@@ -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
|
-
const NullDependency = require("./NullDependency");
|
7
|
-
const webpackMissingModule = require("./WebpackMissingModule").module;
|
8
|
-
|
9
|
-
class UnsupportedDependency extends NullDependency {
|
10
|
-
constructor(request, range) {
|
11
|
-
super();
|
12
|
-
this.request = request;
|
13
|
-
this.range = range;
|
14
|
-
}
|
15
|
-
}
|
16
|
-
|
17
|
-
UnsupportedDependency.Template = class UnsupportedDependencyTemplate {
|
18
|
-
apply(dep, source, runtime) {
|
19
|
-
source.replace(
|
20
|
-
dep.range[0],
|
21
|
-
dep.range[1],
|
22
|
-
webpackMissingModule(dep.request)
|
23
|
-
);
|
24
|
-
}
|
25
|
-
};
|
26
|
-
|
27
|
-
module.exports = UnsupportedDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const NullDependency = require("./NullDependency");
|
7
|
+
const webpackMissingModule = require("./WebpackMissingModule").module;
|
8
|
+
|
9
|
+
class UnsupportedDependency extends NullDependency {
|
10
|
+
constructor(request, range) {
|
11
|
+
super();
|
12
|
+
this.request = request;
|
13
|
+
this.range = range;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
UnsupportedDependency.Template = class UnsupportedDependencyTemplate {
|
18
|
+
apply(dep, source, runtime) {
|
19
|
+
source.replace(
|
20
|
+
dep.range[0],
|
21
|
+
dep.range[1],
|
22
|
+
webpackMissingModule(dep.request)
|
23
|
+
);
|
24
|
+
}
|
25
|
+
};
|
26
|
+
|
27
|
+
module.exports = UnsupportedDependency;
|
@@ -1,29 +1,29 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const DependencyReference = require("./DependencyReference");
|
8
|
-
const ModuleDependency = require("./ModuleDependency");
|
9
|
-
|
10
|
-
class WebAssemblyExportImportedDependency extends ModuleDependency {
|
11
|
-
constructor(exportName, request, name) {
|
12
|
-
super(request);
|
13
|
-
/** @type {string} */
|
14
|
-
this.exportName = exportName;
|
15
|
-
/** @type {string} */
|
16
|
-
this.name = name;
|
17
|
-
}
|
18
|
-
|
19
|
-
getReference() {
|
20
|
-
if (!this.module) return null;
|
21
|
-
return new DependencyReference(this.module, [this.name], false);
|
22
|
-
}
|
23
|
-
|
24
|
-
get type() {
|
25
|
-
return "wasm export import";
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
module.exports = WebAssemblyExportImportedDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const DependencyReference = require("./DependencyReference");
|
8
|
+
const ModuleDependency = require("./ModuleDependency");
|
9
|
+
|
10
|
+
class WebAssemblyExportImportedDependency extends ModuleDependency {
|
11
|
+
constructor(exportName, request, name) {
|
12
|
+
super(request);
|
13
|
+
/** @type {string} */
|
14
|
+
this.exportName = exportName;
|
15
|
+
/** @type {string} */
|
16
|
+
this.name = name;
|
17
|
+
}
|
18
|
+
|
19
|
+
getReference() {
|
20
|
+
if (!this.module) return null;
|
21
|
+
return new DependencyReference(this.module, [this.name], false);
|
22
|
+
}
|
23
|
+
|
24
|
+
get type() {
|
25
|
+
return "wasm export import";
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
module.exports = WebAssemblyExportImportedDependency;
|
@@ -1,48 +1,48 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const DependencyReference = require("./DependencyReference");
|
8
|
-
const ModuleDependency = require("./ModuleDependency");
|
9
|
-
const UnsupportedWebAssemblyFeatureError = require("../wasm/UnsupportedWebAssemblyFeatureError");
|
10
|
-
|
11
|
-
class WebAssemblyImportDependency extends ModuleDependency {
|
12
|
-
constructor(request, name, description, onlyDirectImport) {
|
13
|
-
super(request);
|
14
|
-
/** @type {string} */
|
15
|
-
this.name = name;
|
16
|
-
/** @type {TODO} */
|
17
|
-
this.description = description;
|
18
|
-
/** @type {false | string} */
|
19
|
-
this.onlyDirectImport = onlyDirectImport;
|
20
|
-
}
|
21
|
-
|
22
|
-
getReference() {
|
23
|
-
if (!this.module) return null;
|
24
|
-
return new DependencyReference(this.module, [this.name], false);
|
25
|
-
}
|
26
|
-
|
27
|
-
getErrors() {
|
28
|
-
if (
|
29
|
-
this.onlyDirectImport &&
|
30
|
-
this.module &&
|
31
|
-
!this.module.type.startsWith("webassembly")
|
32
|
-
) {
|
33
|
-
return [
|
34
|
-
new UnsupportedWebAssemblyFeatureError(
|
35
|
-
`Import "${this.name}" from "${this.request}" with ${
|
36
|
-
this.onlyDirectImport
|
37
|
-
} can only be used for direct wasm to wasm dependencies`
|
38
|
-
)
|
39
|
-
];
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
get type() {
|
44
|
-
return "wasm import";
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
module.exports = WebAssemblyImportDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const DependencyReference = require("./DependencyReference");
|
8
|
+
const ModuleDependency = require("./ModuleDependency");
|
9
|
+
const UnsupportedWebAssemblyFeatureError = require("../wasm/UnsupportedWebAssemblyFeatureError");
|
10
|
+
|
11
|
+
class WebAssemblyImportDependency extends ModuleDependency {
|
12
|
+
constructor(request, name, description, onlyDirectImport) {
|
13
|
+
super(request);
|
14
|
+
/** @type {string} */
|
15
|
+
this.name = name;
|
16
|
+
/** @type {TODO} */
|
17
|
+
this.description = description;
|
18
|
+
/** @type {false | string} */
|
19
|
+
this.onlyDirectImport = onlyDirectImport;
|
20
|
+
}
|
21
|
+
|
22
|
+
getReference() {
|
23
|
+
if (!this.module) return null;
|
24
|
+
return new DependencyReference(this.module, [this.name], false);
|
25
|
+
}
|
26
|
+
|
27
|
+
getErrors() {
|
28
|
+
if (
|
29
|
+
this.onlyDirectImport &&
|
30
|
+
this.module &&
|
31
|
+
!this.module.type.startsWith("webassembly")
|
32
|
+
) {
|
33
|
+
return [
|
34
|
+
new UnsupportedWebAssemblyFeatureError(
|
35
|
+
`Import "${this.name}" from "${this.request}" with ${
|
36
|
+
this.onlyDirectImport
|
37
|
+
} can only be used for direct wasm to wasm dependencies`
|
38
|
+
)
|
39
|
+
];
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
get type() {
|
44
|
+
return "wasm import";
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
module.exports = WebAssemblyImportDependency;
|
@@ -1,20 +1,20 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const toErrorCode = err =>
|
7
|
-
`var e = new Error(${JSON.stringify(err)}); e.code = 'MODULE_NOT_FOUND';`;
|
8
|
-
|
9
|
-
exports.module = request =>
|
10
|
-
`!(function webpackMissingModule() { ${exports.moduleCode(request)} }())`;
|
11
|
-
|
12
|
-
exports.promise = request => {
|
13
|
-
const errorCode = toErrorCode(`Cannot find module '${request}'`);
|
14
|
-
return `Promise.reject(function webpackMissingModule() { ${errorCode} return e; }())`;
|
15
|
-
};
|
16
|
-
|
17
|
-
exports.moduleCode = request => {
|
18
|
-
const errorCode = toErrorCode(`Cannot find module '${request}'`);
|
19
|
-
return `${errorCode} throw e;`;
|
20
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const toErrorCode = err =>
|
7
|
+
`var e = new Error(${JSON.stringify(err)}); e.code = 'MODULE_NOT_FOUND';`;
|
8
|
+
|
9
|
+
exports.module = request =>
|
10
|
+
`!(function webpackMissingModule() { ${exports.moduleCode(request)} }())`;
|
11
|
+
|
12
|
+
exports.promise = request => {
|
13
|
+
const errorCode = toErrorCode(`Cannot find module '${request}'`);
|
14
|
+
return `Promise.reject(function webpackMissingModule() { ${errorCode} return e; }())`;
|
15
|
+
};
|
16
|
+
|
17
|
+
exports.moduleCode = request => {
|
18
|
+
const errorCode = toErrorCode(`Cannot find module '${request}'`);
|
19
|
+
return `${errorCode} throw e;`;
|
20
|
+
};
|
package/lib/formatLocation.js
CHANGED
@@ -1,61 +1,75 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
|
6
|
-
"use strict";
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
}
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
}
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
}
|
60
|
-
|
61
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
|
9
|
+
/** @typedef {import("./Dependency").SourcePosition} SourcePosition */
|
10
|
+
|
11
|
+
// TODO webpack 5: pos must be SourcePosition
|
12
|
+
/**
|
13
|
+
* @param {SourcePosition|DependencyLocation|string} pos position
|
14
|
+
* @returns {string} formatted position
|
15
|
+
*/
|
16
|
+
const formatPosition = pos => {
|
17
|
+
if (pos === null) return "";
|
18
|
+
// TODO webpack 5: Simplify this
|
19
|
+
if (typeof pos === "string") return pos;
|
20
|
+
if (typeof pos === "number") return `${pos}`;
|
21
|
+
if (typeof pos === "object") {
|
22
|
+
if ("line" in pos && "column" in pos) {
|
23
|
+
return `${pos.line}:${pos.column}`;
|
24
|
+
} else if ("line" in pos) {
|
25
|
+
return `${pos.line}:?`;
|
26
|
+
} else if ("index" in pos) {
|
27
|
+
// TODO webpack 5 remove this case
|
28
|
+
return `+${pos.index}`;
|
29
|
+
} else {
|
30
|
+
return "";
|
31
|
+
}
|
32
|
+
}
|
33
|
+
return "";
|
34
|
+
};
|
35
|
+
|
36
|
+
// TODO webpack 5: loc must be DependencyLocation
|
37
|
+
/**
|
38
|
+
* @param {DependencyLocation|SourcePosition|string} loc location
|
39
|
+
* @returns {string} formatted location
|
40
|
+
*/
|
41
|
+
const formatLocation = loc => {
|
42
|
+
if (loc === null) return "";
|
43
|
+
// TODO webpack 5: Simplify this
|
44
|
+
if (typeof loc === "string") return loc;
|
45
|
+
if (typeof loc === "number") return `${loc}`;
|
46
|
+
if (typeof loc === "object") {
|
47
|
+
if ("start" in loc && loc.start && "end" in loc && loc.end) {
|
48
|
+
if (
|
49
|
+
typeof loc.start === "object" &&
|
50
|
+
typeof loc.start.line === "number" &&
|
51
|
+
typeof loc.end === "object" &&
|
52
|
+
typeof loc.end.line === "number" &&
|
53
|
+
typeof loc.end.column === "number" &&
|
54
|
+
loc.start.line === loc.end.line
|
55
|
+
) {
|
56
|
+
return `${formatPosition(loc.start)}-${loc.end.column}`;
|
57
|
+
} else {
|
58
|
+
return `${formatPosition(loc.start)}-${formatPosition(loc.end)}`;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
if ("start" in loc && loc.start) {
|
62
|
+
return formatPosition(loc.start);
|
63
|
+
}
|
64
|
+
if ("name" in loc && "index" in loc) {
|
65
|
+
return `${loc.name}[${loc.index}]`;
|
66
|
+
}
|
67
|
+
if ("name" in loc) {
|
68
|
+
return loc.name;
|
69
|
+
}
|
70
|
+
return formatPosition(loc);
|
71
|
+
}
|
72
|
+
return "";
|
73
|
+
};
|
74
|
+
|
75
|
+
module.exports = formatLocation;
|