webpack 5.92.1 → 5.94.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/README.md +8 -5
- package/bin/webpack.js +6 -7
- package/hot/log.js +1 -2
- package/hot/only-dev-server.js +1 -1
- package/hot/poll.js +1 -1
- package/hot/signal.js +1 -1
- package/lib/APIPlugin.js +4 -3
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +12 -6
- package/lib/Cache.js +8 -10
- package/lib/CacheFacade.js +3 -3
- package/lib/CaseSensitiveModulesWarning.js +5 -7
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +58 -36
- package/lib/ChunkGroup.js +2 -3
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +10 -11
- package/lib/CodeGenerationResults.js +6 -5
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/Compilation.js +223 -191
- package/lib/Compiler.js +81 -82
- package/lib/ConcatenationScope.js +3 -6
- package/lib/ConditionalInitFragment.js +6 -7
- package/lib/ConstPlugin.js +7 -15
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +36 -21
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +76 -69
- package/lib/DelegatedModule.js +7 -3
- package/lib/DelegatedModuleFactoryPlugin.js +36 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +0 -1
- package/lib/Dependency.js +10 -14
- package/lib/DllEntryPlugin.js +4 -2
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +30 -15
- package/lib/EntryPlugin.js +1 -3
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +11 -12
- package/lib/EvalDevToolModulePlugin.js +10 -12
- package/lib/EvalSourceMapDevToolPlugin.js +15 -13
- package/lib/ExportsInfo.js +185 -120
- package/lib/ExternalModule.js +104 -64
- package/lib/ExternalModuleFactoryPlugin.js +23 -10
- package/lib/FileSystemInfo.js +791 -422
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
- package/lib/FlagDependencyExportsPlugin.js +12 -11
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +2 -5
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +8 -10
- package/lib/HotModuleReplacementPlugin.js +78 -64
- package/lib/IgnoreErrorModuleFactory.js +3 -3
- package/lib/IgnorePlugin.js +1 -3
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +2 -3
- package/lib/LibManifestPlugin.js +4 -3
- package/lib/MainTemplate.js +72 -19
- package/lib/Module.js +25 -9
- package/lib/ModuleBuildError.js +4 -11
- package/lib/ModuleDependencyError.js +5 -5
- package/lib/ModuleDependencyWarning.js +5 -5
- package/lib/ModuleError.js +1 -5
- package/lib/ModuleFilenameHelpers.js +29 -46
- package/lib/ModuleGraph.js +7 -6
- package/lib/ModuleGraphConnection.js +6 -6
- package/lib/ModuleInfoHeaderPlugin.js +82 -30
- package/lib/ModuleParseError.js +8 -9
- package/lib/ModuleRestoreError.js +1 -1
- package/lib/ModuleStoreError.js +1 -1
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +21 -22
- package/lib/ModuleWarning.js +1 -5
- package/lib/MultiCompiler.js +24 -26
- package/lib/MultiStats.js +73 -31
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +132 -70
- package/lib/NormalModuleFactory.js +53 -49
- package/lib/OptimizationStages.js +3 -3
- package/lib/ProgressPlugin.js +9 -9
- package/lib/ProvidePlugin.js +4 -4
- package/lib/RuntimeGlobals.js +71 -70
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +24 -12
- package/lib/RuntimeTemplate.js +40 -44
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolPlugin.js +42 -34
- package/lib/Stats.js +5 -11
- package/lib/Template.js +18 -24
- package/lib/TemplatedPathPlugin.js +12 -10
- package/lib/UseStrictPlugin.js +8 -1
- package/lib/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +89 -62
- package/lib/asset/AssetGenerator.js +107 -42
- package/lib/asset/AssetModulesPlugin.js +29 -23
- package/lib/asset/AssetSourceGenerator.js +2 -7
- package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
- package/lib/buildChunkGraph.js +14 -19
- package/lib/cache/IdleFileCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
- package/lib/cache/PackFileCacheStrategy.js +51 -50
- package/lib/cache/ResolverCachePlugin.js +6 -6
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +148 -104
- package/lib/config/browserslistTargetHandler.js +16 -13
- package/lib/config/defaults.js +31 -28
- package/lib/config/normalization.js +335 -344
- package/lib/config/target.js +42 -52
- package/lib/container/ContainerEntryModule.js +2 -2
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/RemoteRuntimeModule.js +11 -8
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +39 -40
- package/lib/css/CssGenerator.js +11 -14
- package/lib/css/CssLoadingRuntimeModule.js +10 -10
- package/lib/css/CssModulesPlugin.js +127 -47
- package/lib/css/CssParser.js +20 -18
- package/lib/css/walkCssTokens.js +80 -95
- package/lib/debug/ProfilingPlugin.js +19 -20
- package/lib/dependencies/AMDDefineDependency.js +1 -1
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
- package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
- package/lib/dependencies/CommonJsExportsDependency.js +0 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
- package/lib/dependencies/ConstDependency.js +1 -1
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +31 -34
- package/lib/dependencies/ContextElementDependency.js +2 -2
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssExportDependency.js +72 -9
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +4 -5
- package/lib/dependencies/DynamicExports.js +5 -5
- package/lib/dependencies/ExportsInfoDependency.js +1 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
- package/lib/dependencies/HarmonyExports.js +2 -2
- package/lib/dependencies/HarmonyImportDependency.js +2 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
- package/lib/dependencies/ImportDependency.js +1 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
- package/lib/dependencies/ImportMetaPlugin.js +11 -13
- package/lib/dependencies/ImportParserPlugin.js +39 -44
- package/lib/dependencies/JsonExportsDependency.js +22 -18
- package/lib/dependencies/LoaderPlugin.js +47 -36
- package/lib/dependencies/LocalModule.js +1 -1
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
- package/lib/dependencies/ProvidedDependency.js +1 -1
- package/lib/dependencies/PureExpressionDependency.js +6 -6
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLDependency.js +3 -3
- package/lib/dependencies/URLPlugin.js +66 -12
- package/lib/dependencies/WorkerPlugin.js +25 -24
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
- package/lib/hmr/LazyCompilationPlugin.js +27 -12
- package/lib/hmr/lazyCompilationBackend.js +64 -40
- package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +5 -1
- package/lib/ids/IdHelpers.js +29 -39
- package/lib/ids/SyncModuleIdsPlugin.js +7 -2
- package/lib/index.js +1 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +97 -70
- package/lib/javascript/JavascriptParser.js +179 -200
- package/lib/javascript/JavascriptParserHelpers.js +20 -21
- package/lib/javascript/StartupHelpers.js +41 -13
- package/lib/json/JsonGenerator.js +7 -13
- package/lib/json/JsonModulesPlugin.js +1 -4
- package/lib/json/JsonParser.js +5 -3
- package/lib/library/AmdLibraryPlugin.js +12 -16
- package/lib/library/AssignLibraryPlugin.js +9 -11
- package/lib/library/EnableLibraryPlugin.js +25 -15
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +2 -1
- package/lib/library/SystemLibraryPlugin.js +2 -1
- package/lib/library/UmdLibraryPlugin.js +66 -92
- package/lib/logging/Logger.js +32 -4
- package/lib/logging/createConsoleLogger.js +12 -13
- package/lib/logging/runtime.js +7 -8
- package/lib/logging/truncateArgs.js +5 -8
- package/lib/node/NodeWatchFileSystem.js +3 -18
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
- package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/nodeConsole.js +22 -22
- package/lib/optimize/AggressiveMergingPlugin.js +2 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
- package/lib/optimize/ConcatenatedModule.js +144 -61
- package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
- package/lib/optimize/InnerGraph.js +17 -17
- package/lib/optimize/InnerGraphPlugin.js +8 -7
- package/lib/optimize/LimitChunkCountPlugin.js +2 -3
- package/lib/optimize/MangleExportsPlugin.js +1 -0
- package/lib/optimize/MinMaxSizeWarning.js +1 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
- package/lib/optimize/RealContentHashPlugin.js +7 -10
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
- package/lib/optimize/SplitChunksPlugin.js +34 -30
- package/lib/performance/SizeLimitsPlugin.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
- package/lib/rules/BasicEffectRulePlugin.js +3 -1
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
- package/lib/rules/RuleSetCompiler.js +41 -22
- package/lib/rules/UseEffectRulePlugin.js +36 -32
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
- package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +241 -126
- package/lib/serialization/BinaryMiddleware.js +44 -28
- package/lib/serialization/DateObjectSerializer.js +1 -0
- package/lib/serialization/ErrorObjectSerializer.js +2 -0
- package/lib/serialization/FileMiddleware.js +154 -106
- package/lib/serialization/MapObjectSerializer.js +2 -1
- package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
- package/lib/serialization/ObjectMiddleware.js +52 -56
- package/lib/serialization/PlainObjectSerializer.js +32 -6
- package/lib/serialization/RegExpObjectSerializer.js +1 -0
- package/lib/serialization/Serializer.js +4 -5
- package/lib/serialization/SerializerMiddleware.js +6 -6
- package/lib/serialization/SetObjectSerializer.js +2 -1
- package/lib/sharing/ConsumeSharedModule.js +19 -14
- package/lib/sharing/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedPlugin.js +2 -2
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +15 -27
- package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
- package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
- package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
- package/lib/stats/StatsFactory.js +127 -56
- package/lib/stats/StatsPrinter.js +75 -44
- package/lib/util/ArrayHelpers.js +8 -4
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +31 -12
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +1 -0
- package/lib/util/MapHelpers.js +1 -3
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/Queue.js +1 -1
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +4 -3
- package/lib/util/StackedCacheMap.js +4 -6
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +0 -5
- package/lib/util/TupleQueue.js +1 -1
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +7 -7
- package/lib/util/WeakTupleMap.js +19 -21
- package/lib/util/binarySearchBounds.js +5 -12
- package/lib/util/chainedImports.js +1 -1
- package/lib/util/cleverMerge.js +21 -19
- package/lib/util/comparators.js +57 -52
- package/lib/util/compileBooleanMatcher.js +3 -6
- package/lib/util/conventions.js +10 -13
- package/lib/util/createHash.js +9 -6
- package/lib/util/deprecation.js +22 -12
- package/lib/util/deterministicGrouping.js +19 -26
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +31 -31
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +7 -7
- package/lib/util/hash/xxhash64.js +2 -2
- package/lib/util/identifier.js +81 -59
- package/lib/util/memoize.js +8 -10
- package/lib/util/mergeScope.js +6 -9
- package/lib/util/nonNumericOnlyHash.js +2 -2
- package/lib/util/numberHash.js +1 -6
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/propertyAccess.js +2 -5
- package/lib/util/propertyName.js +1 -3
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +103 -113
- package/lib/util/semver.js +29 -27
- package/lib/util/serialization.js +16 -1
- package/lib/util/smartGrouping.js +5 -5
- package/lib/util/source.js +1 -1
- package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
- package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +17 -16
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
- package/types.d.ts +682 -347
@@ -49,9 +49,7 @@ class ImportMetaPlugin {
|
|
49
49
|
* @param {NormalModule} module module
|
50
50
|
* @returns {string} file url
|
51
51
|
*/
|
52
|
-
const getUrl = module =>
|
53
|
-
return pathToFileURL(module.resource).toString();
|
54
|
-
};
|
52
|
+
const getUrl = module => pathToFileURL(module.resource).toString();
|
55
53
|
/**
|
56
54
|
* @param {Parser} parser parser parser
|
57
55
|
* @param {JavascriptParserOptions} parserOptions parserOptions
|
@@ -76,8 +74,8 @@ class ImportMetaPlugin {
|
|
76
74
|
return;
|
77
75
|
}
|
78
76
|
|
79
|
-
|
80
|
-
const webpackVersion = parseInt(
|
77
|
+
// import.meta direct
|
78
|
+
const webpackVersion = Number.parseInt(
|
81
79
|
require("../../package.json").version,
|
82
80
|
10
|
83
81
|
);
|
@@ -90,7 +88,7 @@ class ImportMetaPlugin {
|
|
90
88
|
*/
|
91
89
|
const importMetaUnknownProperty = members =>
|
92
90
|
`${Template.toNormalComment(
|
93
|
-
|
91
|
+
`unsupported import.meta.${members.join(".")}`
|
94
92
|
)} undefined${propertyAccess(members, 1)}`;
|
95
93
|
parser.hooks.typeof
|
96
94
|
.for("import.meta")
|
@@ -162,7 +160,7 @@ class ImportMetaPlugin {
|
|
162
160
|
evaluateToIdentifier("import.meta", "import.meta", () => [], true)
|
163
161
|
);
|
164
162
|
|
165
|
-
|
163
|
+
// import.meta.url
|
166
164
|
parser.hooks.typeof
|
167
165
|
.for("import.meta.url")
|
168
166
|
.tap(
|
@@ -185,13 +183,13 @@ class ImportMetaPlugin {
|
|
185
183
|
.tap(PLUGIN_NAME, evaluateToString("string"));
|
186
184
|
parser.hooks.evaluateIdentifier
|
187
185
|
.for("import.meta.url")
|
188
|
-
.tap(PLUGIN_NAME, expr =>
|
189
|
-
|
186
|
+
.tap(PLUGIN_NAME, expr =>
|
187
|
+
new BasicEvaluatedExpression()
|
190
188
|
.setString(getUrl(parser.state.module))
|
191
|
-
.setRange(/** @type {Range} */ (expr.range))
|
192
|
-
|
189
|
+
.setRange(/** @type {Range} */ (expr.range))
|
190
|
+
);
|
193
191
|
|
194
|
-
|
192
|
+
// import.meta.webpack
|
195
193
|
parser.hooks.typeof
|
196
194
|
.for("import.meta.webpack")
|
197
195
|
.tap(
|
@@ -211,7 +209,7 @@ class ImportMetaPlugin {
|
|
211
209
|
.for("import.meta.webpack")
|
212
210
|
.tap(PLUGIN_NAME, evaluateToNumber(webpackVersion));
|
213
211
|
|
214
|
-
|
212
|
+
// Unknown properties
|
215
213
|
parser.hooks.unhandledExpressionMemberChain
|
216
214
|
.for("import.meta")
|
217
215
|
.tap(PLUGIN_NAME, (expr, members) => {
|
@@ -100,11 +100,9 @@ class ImportParserPlugin {
|
|
100
100
|
/** @type {DependencyLocation} */ (expr.loc)
|
101
101
|
)
|
102
102
|
);
|
103
|
-
} else {
|
103
|
+
} else if (importOptions.webpackIgnore) {
|
104
104
|
// Do not instrument `import()` if `webpackIgnore` is `true`
|
105
|
-
|
106
|
-
return false;
|
107
|
-
}
|
105
|
+
return false;
|
108
106
|
}
|
109
107
|
}
|
110
108
|
if (importOptions.webpackChunkName !== undefined) {
|
@@ -220,12 +218,10 @@ class ImportParserPlugin {
|
|
220
218
|
/** @type {DependencyLocation} */ (expr.loc)
|
221
219
|
)
|
222
220
|
);
|
221
|
+
} else if (typeof importOptions.webpackExports === "string") {
|
222
|
+
exports = [[importOptions.webpackExports]];
|
223
223
|
} else {
|
224
|
-
|
225
|
-
exports = [[importOptions.webpackExports]];
|
226
|
-
} else {
|
227
|
-
exports = exportsFromEnumerable(importOptions.webpackExports);
|
228
|
-
}
|
224
|
+
exports = exportsFromEnumerable(importOptions.webpackExports);
|
229
225
|
}
|
230
226
|
}
|
231
227
|
}
|
@@ -251,7 +247,7 @@ class ImportParserPlugin {
|
|
251
247
|
if (exports) {
|
252
248
|
parser.state.module.addWarning(
|
253
249
|
new UnsupportedFeatureWarning(
|
254
|
-
|
250
|
+
"`webpackExports` could not be used with destructuring assignment.",
|
255
251
|
/** @type {DependencyLocation} */ (expr.loc)
|
256
252
|
)
|
257
253
|
);
|
@@ -296,45 +292,44 @@ class ImportParserPlugin {
|
|
296
292
|
attributes
|
297
293
|
);
|
298
294
|
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
299
|
-
dep.optional =
|
295
|
+
dep.optional = Boolean(parser.scope.inTry);
|
300
296
|
depBlock.addDependency(dep);
|
301
297
|
parser.state.current.addBlock(depBlock);
|
302
298
|
}
|
303
299
|
return true;
|
304
|
-
} else {
|
305
|
-
if (mode === "weak") {
|
306
|
-
mode = "async-weak";
|
307
|
-
}
|
308
|
-
const dep = ContextDependencyHelpers.create(
|
309
|
-
ImportContextDependency,
|
310
|
-
/** @type {Range} */ (expr.range),
|
311
|
-
param,
|
312
|
-
expr,
|
313
|
-
this.options,
|
314
|
-
{
|
315
|
-
chunkName,
|
316
|
-
groupOptions,
|
317
|
-
include,
|
318
|
-
exclude,
|
319
|
-
mode,
|
320
|
-
namespaceObject: /** @type {BuildMeta} */ (
|
321
|
-
parser.state.module.buildMeta
|
322
|
-
).strictHarmonyModule
|
323
|
-
? "strict"
|
324
|
-
: true,
|
325
|
-
typePrefix: "import()",
|
326
|
-
category: "esm",
|
327
|
-
referencedExports: exports,
|
328
|
-
attributes: getAttributes(expr)
|
329
|
-
},
|
330
|
-
parser
|
331
|
-
);
|
332
|
-
if (!dep) return;
|
333
|
-
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
334
|
-
dep.optional = !!parser.scope.inTry;
|
335
|
-
parser.state.current.addDependency(dep);
|
336
|
-
return true;
|
337
300
|
}
|
301
|
+
if (mode === "weak") {
|
302
|
+
mode = "async-weak";
|
303
|
+
}
|
304
|
+
const dep = ContextDependencyHelpers.create(
|
305
|
+
ImportContextDependency,
|
306
|
+
/** @type {Range} */ (expr.range),
|
307
|
+
param,
|
308
|
+
expr,
|
309
|
+
this.options,
|
310
|
+
{
|
311
|
+
chunkName,
|
312
|
+
groupOptions,
|
313
|
+
include,
|
314
|
+
exclude,
|
315
|
+
mode,
|
316
|
+
namespaceObject: /** @type {BuildMeta} */ (
|
317
|
+
parser.state.module.buildMeta
|
318
|
+
).strictHarmonyModule
|
319
|
+
? "strict"
|
320
|
+
: true,
|
321
|
+
typePrefix: "import()",
|
322
|
+
category: "esm",
|
323
|
+
referencedExports: exports,
|
324
|
+
attributes: getAttributes(expr)
|
325
|
+
},
|
326
|
+
parser
|
327
|
+
);
|
328
|
+
if (!dep) return;
|
329
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
330
|
+
dep.optional = Boolean(parser.scope.inTry);
|
331
|
+
parser.state.current.addDependency(dep);
|
332
|
+
return true;
|
338
333
|
});
|
339
334
|
}
|
340
335
|
}
|
@@ -14,33 +14,35 @@ const NullDependency = require("./NullDependency");
|
|
14
14
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
15
15
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
16
16
|
/** @typedef {import("../json/JsonData")} JsonData */
|
17
|
+
/** @typedef {import("../json/JsonData").RawJsonData} RawJsonData */
|
17
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
18
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
19
20
|
/** @typedef {import("../util/Hash")} Hash */
|
20
21
|
|
22
|
+
/**
|
23
|
+
* @param {RawJsonData} data data
|
24
|
+
* @returns {TODO} value
|
25
|
+
*/
|
21
26
|
const getExportsFromData = data => {
|
22
27
|
if (data && typeof data === "object") {
|
23
28
|
if (Array.isArray(data)) {
|
24
29
|
return data.length < 100
|
25
|
-
? data.map((item, idx) => {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
};
|
31
|
-
})
|
30
|
+
? data.map((item, idx) => ({
|
31
|
+
name: `${idx}`,
|
32
|
+
canMangle: true,
|
33
|
+
exports: getExportsFromData(item)
|
34
|
+
}))
|
32
35
|
: undefined;
|
33
|
-
} else {
|
34
|
-
const exports = [];
|
35
|
-
for (const key of Object.keys(data)) {
|
36
|
-
exports.push({
|
37
|
-
name: key,
|
38
|
-
canMangle: true,
|
39
|
-
exports: getExportsFromData(data[key])
|
40
|
-
});
|
41
|
-
}
|
42
|
-
return exports;
|
43
36
|
}
|
37
|
+
const exports = [];
|
38
|
+
for (const key of Object.keys(data)) {
|
39
|
+
exports.push({
|
40
|
+
name: key,
|
41
|
+
canMangle: true,
|
42
|
+
exports: getExportsFromData(data[key])
|
43
|
+
});
|
44
|
+
}
|
45
|
+
return exports;
|
44
46
|
}
|
45
47
|
return undefined;
|
46
48
|
};
|
@@ -65,7 +67,9 @@ class JsonExportsDependency extends NullDependency {
|
|
65
67
|
*/
|
66
68
|
getExports(moduleGraph) {
|
67
69
|
return {
|
68
|
-
exports: getExportsFromData(
|
70
|
+
exports: getExportsFromData(
|
71
|
+
this.data && /** @type {RawJsonData} */ (this.data.get())
|
72
|
+
),
|
69
73
|
dependencies: undefined
|
70
74
|
};
|
71
75
|
}
|
@@ -10,17 +10,12 @@ const LazySet = require("../util/LazySet");
|
|
10
10
|
const LoaderDependency = require("./LoaderDependency");
|
11
11
|
const LoaderImportDependency = require("./LoaderImportDependency");
|
12
12
|
|
13
|
+
/** @typedef {import("../../declarations/LoaderContext").LoaderPluginLoaderContext} LoaderPluginLoaderContext */
|
13
14
|
/** @typedef {import("../Compilation").DepConstructor} DepConstructor */
|
15
|
+
/** @typedef {import("../Compilation").ExecuteModuleResult} ExecuteModuleResult */
|
14
16
|
/** @typedef {import("../Compiler")} Compiler */
|
15
17
|
/** @typedef {import("../Module")} Module */
|
16
|
-
|
17
|
-
/**
|
18
|
-
* @callback LoadModuleCallback
|
19
|
-
* @param {(Error | null)=} err error object
|
20
|
-
* @param {string | Buffer=} source source code
|
21
|
-
* @param {object=} map source map
|
22
|
-
* @param {Module=} module loaded module if successful
|
23
|
-
*/
|
18
|
+
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
24
19
|
|
25
20
|
/**
|
26
21
|
* @callback ImportModuleCallback
|
@@ -66,11 +61,6 @@ class LoaderPlugin {
|
|
66
61
|
NormalModule.getCompilationHooks(compilation).loader.tap(
|
67
62
|
"LoaderPlugin",
|
68
63
|
loaderContext => {
|
69
|
-
/**
|
70
|
-
* @param {string} request the request string to load the module from
|
71
|
-
* @param {LoadModuleCallback} callback callback returning the loaded module or error
|
72
|
-
* @returns {void}
|
73
|
-
*/
|
74
64
|
loaderContext.loadModule = (request, callback) => {
|
75
65
|
const dep = new LoaderDependency(request);
|
76
66
|
dep.loc = {
|
@@ -91,7 +81,9 @@ class LoaderPlugin {
|
|
91
81
|
{
|
92
82
|
factory,
|
93
83
|
dependencies: [dep],
|
94
|
-
originModule:
|
84
|
+
originModule:
|
85
|
+
/** @type {NormalModule} */
|
86
|
+
(loaderContext._module),
|
95
87
|
context: loaderContext.context,
|
96
88
|
recursive: false
|
97
89
|
},
|
@@ -117,7 +109,8 @@ class LoaderPlugin {
|
|
117
109
|
)
|
118
110
|
);
|
119
111
|
}
|
120
|
-
let
|
112
|
+
let map;
|
113
|
+
let source;
|
121
114
|
if (moduleSource.sourceAndMap) {
|
122
115
|
const sourceAndMap = moduleSource.sourceAndMap();
|
123
116
|
map = sourceAndMap.map;
|
@@ -149,15 +142,20 @@ class LoaderPlugin {
|
|
149
142
|
for (const d of buildDependencies) {
|
150
143
|
loaderContext.addBuildDependency(d);
|
151
144
|
}
|
152
|
-
return callback(
|
145
|
+
return callback(
|
146
|
+
null,
|
147
|
+
source,
|
148
|
+
/** @type {object | null} */ (map),
|
149
|
+
referencedModule
|
150
|
+
);
|
153
151
|
}
|
154
152
|
);
|
155
153
|
};
|
156
154
|
|
157
155
|
/**
|
158
156
|
* @param {string} request the request string to load the module from
|
159
|
-
* @param {ImportModuleOptions
|
160
|
-
* @param {ImportModuleCallback
|
157
|
+
* @param {ImportModuleOptions} options options
|
158
|
+
* @param {ImportModuleCallback} callback callback returning the exports
|
161
159
|
* @returns {void}
|
162
160
|
*/
|
163
161
|
const importModule = (request, options, callback) => {
|
@@ -180,7 +178,9 @@ class LoaderPlugin {
|
|
180
178
|
{
|
181
179
|
factory,
|
182
180
|
dependencies: [dep],
|
183
|
-
originModule:
|
181
|
+
originModule:
|
182
|
+
/** @type {NormalModule} */
|
183
|
+
(loaderContext._module),
|
184
184
|
contextInfo: {
|
185
185
|
issuerLayer: options.layer
|
186
186
|
},
|
@@ -207,42 +207,53 @@ class LoaderPlugin {
|
|
207
207
|
},
|
208
208
|
(err, result) => {
|
209
209
|
if (err) return callback(err);
|
210
|
-
|
210
|
+
const {
|
211
|
+
fileDependencies,
|
212
|
+
contextDependencies,
|
213
|
+
missingDependencies,
|
214
|
+
buildDependencies,
|
215
|
+
cacheable,
|
216
|
+
assets,
|
217
|
+
exports
|
218
|
+
} = /** @type {ExecuteModuleResult} */ (result);
|
219
|
+
for (const d of fileDependencies) {
|
211
220
|
loaderContext.addDependency(d);
|
212
221
|
}
|
213
|
-
for (const d of
|
222
|
+
for (const d of contextDependencies) {
|
214
223
|
loaderContext.addContextDependency(d);
|
215
224
|
}
|
216
|
-
for (const d of
|
225
|
+
for (const d of missingDependencies) {
|
217
226
|
loaderContext.addMissingDependency(d);
|
218
227
|
}
|
219
|
-
for (const d of
|
228
|
+
for (const d of buildDependencies) {
|
220
229
|
loaderContext.addBuildDependency(d);
|
221
230
|
}
|
222
|
-
if (
|
223
|
-
|
224
|
-
|
225
|
-
|
231
|
+
if (cacheable === false) loaderContext.cacheable(false);
|
232
|
+
for (const [name, { source, info }] of assets) {
|
233
|
+
const buildInfo =
|
234
|
+
/** @type {BuildInfo} */
|
235
|
+
(
|
236
|
+
/** @type {NormalModule} */ (loaderContext._module)
|
237
|
+
.buildInfo
|
238
|
+
);
|
226
239
|
if (!buildInfo.assets) {
|
227
240
|
buildInfo.assets = Object.create(null);
|
228
241
|
buildInfo.assetsInfo = new Map();
|
229
242
|
}
|
230
|
-
|
231
|
-
buildInfo.
|
243
|
+
/** @type {NonNullable<BuildInfo["assets"]>} */
|
244
|
+
(buildInfo.assets)[name] = source;
|
245
|
+
/** @type {NonNullable<BuildInfo["assetsInfo"]>} */
|
246
|
+
(buildInfo.assetsInfo).set(name, info);
|
232
247
|
}
|
233
|
-
callback(null,
|
248
|
+
callback(null, exports);
|
234
249
|
}
|
235
250
|
);
|
236
251
|
}
|
237
252
|
);
|
238
253
|
};
|
239
254
|
|
240
|
-
|
241
|
-
|
242
|
-
* @param {ImportModuleOptions} options options
|
243
|
-
* @param {ImportModuleCallback=} callback callback returning the exports
|
244
|
-
* @returns {Promise<any> | void} exports
|
245
|
-
*/
|
255
|
+
// eslint-disable-next-line no-warning-comments
|
256
|
+
// @ts-ignore Overloading doesn't work
|
246
257
|
loaderContext.importModule = (request, options, callback) => {
|
247
258
|
if (!callback) {
|
248
259
|
return new Promise((resolve, reject) => {
|
@@ -17,8 +17,8 @@ const LocalModule = require("./LocalModule");
|
|
17
17
|
const lookup = (parent, mod) => {
|
18
18
|
if (mod.charAt(0) !== ".") return mod;
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
const path = parent.split("/");
|
21
|
+
const segments = mod.split("/");
|
22
22
|
path.pop();
|
23
23
|
|
24
24
|
for (let i = 0; i < segments.length; i++) {
|
@@ -38,7 +38,7 @@ const lookup = (parent, mod) => {
|
|
38
38
|
* @param {string} name name
|
39
39
|
* @returns {LocalModule} local module
|
40
40
|
*/
|
41
|
-
exports.addLocalModule = (state, name) => {
|
41
|
+
module.exports.addLocalModule = (state, name) => {
|
42
42
|
if (!state.localModules) {
|
43
43
|
state.localModules = [];
|
44
44
|
}
|
@@ -53,7 +53,7 @@ exports.addLocalModule = (state, name) => {
|
|
53
53
|
* @param {string} [namedModule] named module
|
54
54
|
* @returns {LocalModule | null} local module or null
|
55
55
|
*/
|
56
|
-
exports.getLocalModule = (state, name, namedModule) => {
|
56
|
+
module.exports.getLocalModule = (state, name, namedModule) => {
|
57
57
|
if (!state.localModules) return null;
|
58
58
|
if (namedModule) {
|
59
59
|
// resolve dependency name relative to the defining named module
|
@@ -64,7 +64,7 @@ class ProvidedDependency extends ModuleDependency {
|
|
64
64
|
* @returns {(string[] | ReferencedExport)[]} referenced exports
|
65
65
|
*/
|
66
66
|
getReferencedExports(moduleGraph, runtime) {
|
67
|
-
|
67
|
+
const ids = this.ids;
|
68
68
|
if (ids.length === 0) return Dependency.EXPORTS_OBJECT_REFERENCED;
|
69
69
|
return [ids];
|
70
70
|
}
|
@@ -77,12 +77,12 @@ class PureExpressionDependency extends NullDependency {
|
|
77
77
|
hash.update("null");
|
78
78
|
} else {
|
79
79
|
hash.update(
|
80
|
-
runtimeToString(runtimeCondition)
|
81
|
-
|
82
|
-
|
80
|
+
`${runtimeToString(runtimeCondition)}|${runtimeToString(
|
81
|
+
context.runtime
|
82
|
+
)}`
|
83
83
|
);
|
84
84
|
}
|
85
|
-
hash.update(this.range
|
85
|
+
hash.update(String(this.range));
|
86
86
|
}
|
87
87
|
|
88
88
|
/**
|
@@ -136,11 +136,11 @@ PureExpressionDependency.Template = class PureExpressionDependencyTemplate exten
|
|
136
136
|
const dep = /** @type {PureExpressionDependency} */ (dependency);
|
137
137
|
const runtimeCondition = dep._getRuntimeCondition(moduleGraph, runtime);
|
138
138
|
if (runtimeCondition === true) {
|
139
|
-
|
139
|
+
// Do nothing
|
140
140
|
} else if (runtimeCondition === false) {
|
141
141
|
source.insert(
|
142
142
|
dep.range[0],
|
143
|
-
|
143
|
+
"(/* unused pure expression or super */ null && ("
|
144
144
|
);
|
145
145
|
source.insert(dep.range[1], "))");
|
146
146
|
} else {
|
@@ -56,7 +56,7 @@ module.exports = class RequireContextDependencyParserPlugin {
|
|
56
56
|
/** @type {Range} */ (expr.range)
|
57
57
|
);
|
58
58
|
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
59
|
-
dep.optional =
|
59
|
+
dep.optional = Boolean(parser.scope.inTry);
|
60
60
|
parser.state.current.addDependency(dep);
|
61
61
|
return true;
|
62
62
|
}
|
@@ -36,7 +36,7 @@ class RuntimeRequirementsDependency extends NullDependency {
|
|
36
36
|
*/
|
37
37
|
updateHash(hash, context) {
|
38
38
|
if (this._hashUpdate === undefined) {
|
39
|
-
this._hashUpdate = Array.from(this.runtimeRequirements).join()
|
39
|
+
this._hashUpdate = `${Array.from(this.runtimeRequirements).join()}`;
|
40
40
|
}
|
41
41
|
hash.update(this._hashUpdate);
|
42
42
|
}
|
@@ -30,9 +30,9 @@ const ModuleDependency = require("./ModuleDependency");
|
|
30
30
|
/** @typedef {import("../util/Hash")} Hash */
|
31
31
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
32
32
|
|
33
|
-
const getIgnoredRawDataUrlModule = memoize(
|
34
|
-
|
35
|
-
|
33
|
+
const getIgnoredRawDataUrlModule = memoize(
|
34
|
+
() => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
|
35
|
+
);
|
36
36
|
|
37
37
|
class URLDependency extends ModuleDependency {
|
38
38
|
/**
|
@@ -6,13 +6,17 @@
|
|
6
6
|
"use strict";
|
7
7
|
|
8
8
|
const { pathToFileURL } = require("url");
|
9
|
+
const CommentCompilationWarning = require("../CommentCompilationWarning");
|
9
10
|
const {
|
10
11
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
11
12
|
JAVASCRIPT_MODULE_TYPE_ESM
|
12
13
|
} = require("../ModuleTypeConstants");
|
14
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
15
|
+
const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
|
13
16
|
const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression");
|
14
17
|
const { approve } = require("../javascript/JavascriptParserHelpers");
|
15
18
|
const InnerGraph = require("../optimize/InnerGraph");
|
19
|
+
const ConstDependency = require("./ConstDependency");
|
16
20
|
const URLDependency = require("./URLDependency");
|
17
21
|
|
18
22
|
/** @typedef {import("estree").NewExpression} NewExpressionNode */
|
@@ -44,8 +48,21 @@ class URLPlugin {
|
|
44
48
|
* @param {NormalModule} module module
|
45
49
|
* @returns {URL} file url
|
46
50
|
*/
|
47
|
-
const getUrl = module =>
|
48
|
-
|
51
|
+
const getUrl = module => pathToFileURL(module.resource);
|
52
|
+
|
53
|
+
const isMetaUrl = (parser, arg) => {
|
54
|
+
const chain = parser.extractMemberExpressionChain(arg);
|
55
|
+
|
56
|
+
if (
|
57
|
+
chain.members.length !== 1 ||
|
58
|
+
chain.object.type !== "MetaProperty" ||
|
59
|
+
chain.object.meta.name !== "import" ||
|
60
|
+
chain.object.property.name !== "meta" ||
|
61
|
+
chain.members[0] !== "url"
|
62
|
+
)
|
63
|
+
return false;
|
64
|
+
|
65
|
+
return true;
|
49
66
|
};
|
50
67
|
|
51
68
|
/**
|
@@ -72,16 +89,7 @@ class URLPlugin {
|
|
72
89
|
)
|
73
90
|
return;
|
74
91
|
|
75
|
-
|
76
|
-
|
77
|
-
if (
|
78
|
-
chain.members.length !== 1 ||
|
79
|
-
chain.object.type !== "MetaProperty" ||
|
80
|
-
chain.object.meta.name !== "import" ||
|
81
|
-
chain.object.property.name !== "meta" ||
|
82
|
-
chain.members[0] !== "url"
|
83
|
-
)
|
84
|
-
return;
|
92
|
+
if (!isMetaUrl(parser, arg2)) return;
|
85
93
|
|
86
94
|
return parser.evaluateExpression(arg1).asString();
|
87
95
|
};
|
@@ -100,6 +108,52 @@ class URLPlugin {
|
|
100
108
|
});
|
101
109
|
parser.hooks.new.for("URL").tap(PLUGIN_NAME, _expr => {
|
102
110
|
const expr = /** @type {NewExpressionNode} */ (_expr);
|
111
|
+
const { options: importOptions, errors: commentErrors } =
|
112
|
+
parser.parseCommentOptions(/** @type {Range} */ (expr.range));
|
113
|
+
|
114
|
+
if (commentErrors) {
|
115
|
+
for (const e of commentErrors) {
|
116
|
+
const { comment } = e;
|
117
|
+
parser.state.module.addWarning(
|
118
|
+
new CommentCompilationWarning(
|
119
|
+
`Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`,
|
120
|
+
comment.loc
|
121
|
+
)
|
122
|
+
);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
if (importOptions && importOptions.webpackIgnore !== undefined) {
|
127
|
+
if (typeof importOptions.webpackIgnore !== "boolean") {
|
128
|
+
parser.state.module.addWarning(
|
129
|
+
new UnsupportedFeatureWarning(
|
130
|
+
`\`webpackIgnore\` expected a boolean, but received: ${importOptions.webpackIgnore}.`,
|
131
|
+
/** @type {DependencyLocation} */ (expr.loc)
|
132
|
+
)
|
133
|
+
);
|
134
|
+
return;
|
135
|
+
} else if (importOptions.webpackIgnore) {
|
136
|
+
if (expr.arguments.length !== 2) return;
|
137
|
+
|
138
|
+
const [, arg2] = expr.arguments;
|
139
|
+
|
140
|
+
if (
|
141
|
+
arg2.type !== "MemberExpression" ||
|
142
|
+
!isMetaUrl(parser, arg2)
|
143
|
+
)
|
144
|
+
return;
|
145
|
+
|
146
|
+
const dep = new ConstDependency(
|
147
|
+
RuntimeGlobals.baseURI,
|
148
|
+
/** @type {Range} */ (arg2.range),
|
149
|
+
[RuntimeGlobals.baseURI]
|
150
|
+
);
|
151
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
152
|
+
parser.state.module.addPresentationalDependency(dep);
|
153
|
+
|
154
|
+
return true;
|
155
|
+
}
|
156
|
+
}
|
103
157
|
|
104
158
|
const request = getUrlRequest(expr);
|
105
159
|
|