webpack 5.108.4 → 5.109.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/bin/webpack.js +12 -0
- package/lib/APIPlugin.js +48 -29
- package/lib/CacheFacade.js +8 -0
- package/lib/ChunkGraph.js +17 -15
- package/lib/ChunkGroup.js +1 -0
- package/lib/CompatibilityPlugin.js +62 -29
- package/lib/Compilation.js +58 -6
- package/lib/ConstPlugin.js +11 -11
- package/lib/ContextModule.js +239 -6
- package/lib/ContextModuleFactory.js +139 -14
- package/lib/DefinePlugin.js +433 -112
- package/lib/Entrypoint.js +1 -1
- package/lib/ExportsInfo.js +22 -5
- package/lib/ExportsInfoApiPlugin.js +2 -2
- package/lib/ExternalModule.js +107 -5
- package/lib/ExternalModuleFactoryPlugin.js +20 -1
- package/lib/FileSystemInfo.js +256 -100
- package/lib/FlagDependencyUsagePlugin.js +33 -12
- package/lib/HotModuleReplacementPlugin.js +18 -15
- package/lib/InitFragment.js +20 -32
- package/lib/Module.js +3 -0
- package/lib/ModuleFilenameHelpers.js +2 -2
- package/lib/ModuleTypeConstants.js +8 -1
- package/lib/MultiCompiler.js +13 -2
- package/lib/MultiWatching.js +1 -0
- package/lib/NodeStuffPlugin.js +51 -33
- package/lib/NormalModule.js +175 -401
- package/lib/NormalModuleFactory.js +76 -2
- package/lib/ProgressPlugin.js +211 -119
- package/lib/ProvidePlugin.js +2 -2
- package/lib/RuntimeGlobals.js +47 -0
- package/lib/RuntimePlugin.js +67 -107
- package/lib/RuntimeTemplate.js +304 -16
- package/lib/Template.js +23 -3
- package/lib/UseStrictPlugin.js +1 -1
- package/lib/WebpackIsIncludedPlugin.js +1 -1
- package/lib/WebpackOptionsApply.js +24 -19
- package/lib/asset/AssetGenerator.js +110 -28
- package/lib/asset/AssetModulesPlugin.js +92 -2
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +14 -4
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/cache/PackFileCacheStrategy.js +9 -3
- package/lib/config/browserslistTargetHandler.js +40 -0
- package/lib/config/defaults.js +219 -29
- package/lib/config/normalization.js +26 -0
- package/lib/config/target.js +9 -1
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/css/CssGenerator.js +40 -31
- package/lib/css/CssLoadingRuntimeModule.js +5 -1
- package/lib/css/CssModulesPlugin.js +13 -0
- package/lib/css/CssParser.js +729 -313
- package/lib/css/syntax.js +1371 -861
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +6 -6
- package/lib/dependencies/AMDPlugin.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +13 -13
- package/lib/dependencies/CommonJsDependencyHelpers.js +39 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +19 -0
- package/lib/dependencies/CommonJsExportsDependency.js +47 -2
- package/lib/dependencies/CommonJsExportsParserPlugin.js +10 -10
- package/lib/dependencies/CommonJsImportsParserPlugin.js +18 -18
- package/lib/dependencies/CommonJsPlugin.js +2 -2
- package/lib/dependencies/CommonJsRequireDependency.js +26 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +32 -1
- package/lib/dependencies/ContextDependencyHelpers.js +3 -3
- package/lib/dependencies/CreateRequireParserPlugin.js +6 -6
- package/lib/dependencies/CssIcssExportDependency.js +162 -71
- package/lib/dependencies/CssUrlDependency.js +35 -4
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +2 -2
- package/lib/dependencies/HarmonyCompatibilityDependency.js +32 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +43 -13
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +2 -1
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +7 -19
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +17 -9
- package/lib/dependencies/HarmonyImportDependency.js +13 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +11 -11
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +10 -7
- package/lib/dependencies/HarmonyModulesPlugin.js +6 -0
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -1
- package/lib/dependencies/HtmlEntryDependency.js +797 -172
- package/lib/dependencies/HtmlSourceDependency.js +26 -0
- package/lib/dependencies/ImportDependency.js +43 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +31 -18
- package/lib/dependencies/ImportMetaContextPlugin.js +38 -7
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaPlugin.js +532 -180
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +80 -17
- package/lib/dependencies/ImportPhase.js +10 -8
- package/lib/dependencies/LoaderPlugin.js +5 -1
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +3 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -11
- package/lib/dependencies/SystemPlugin.js +2 -4
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLDependency.js +141 -21
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +324 -112
- package/lib/dependencies/WorkerDependency.js +86 -18
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dll/DelegatedModuleFactoryPlugin.js +19 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +1 -1
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/errors/ModuleParseError.js +39 -22
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +47 -14
- package/lib/esm/ModuleChunkLoadingPlugin.js +8 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +29 -1
- package/lib/hmr/lazyCompilationBackend.js +51 -12
- package/lib/html/HtmlGenerator.js +907 -15
- package/lib/html/HtmlModule.js +2 -2
- package/lib/html/HtmlModulesPlugin.js +610 -166
- package/lib/html/HtmlParser.js +603 -247
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +3451 -2762
- package/lib/ids/IdHelpers.js +25 -11
- package/lib/index.js +6 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +366 -48
- package/lib/javascript/JavascriptGenerator.js +197 -49
- package/lib/javascript/JavascriptModulesPlugin.js +178 -24
- package/lib/javascript/JavascriptParser.js +704 -355
- package/lib/javascript/JavascriptParserHelpers.js +3 -6
- package/lib/javascript/syntax.js +5037 -0
- package/lib/library/ModuleLibraryPlugin.js +38 -1
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +29 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +24 -2
- package/lib/optimize/AggressiveMergingPlugin.js +19 -15
- package/lib/optimize/ConcatenatedModule.js +139 -31
- package/lib/optimize/FlagIncludedChunksPlugin.js +13 -3
- package/lib/optimize/InnerGraphPlugin.js +50 -30
- package/lib/optimize/ModuleConcatenationPlugin.js +139 -24
- package/lib/optimize/SideEffectsFlagPlugin.js +86 -43
- package/lib/optimize/SplitChunksPlugin.js +146 -44
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +15 -0
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +24 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/RuleSetCompiler.js +114 -0
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +24 -8
- package/lib/runtime/AutoPublicPathRuntimeModule.js +7 -1
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +204 -8
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +4 -1
- package/lib/schemes/HttpUriPlugin.js +40 -1
- package/lib/schemes/VirtualUrlPlugin.js +1 -2
- package/lib/serialization/BinaryMiddleware.js +270 -938
- package/lib/serialization/FileMiddleware.js +29 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +229 -194
- package/lib/stats/DefaultStatsPresetPlugin.js +2 -0
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -168
- package/lib/stats/StatsFactory.js +46 -17
- package/lib/url/URLParserPlugin.js +66 -13
- package/lib/util/AsyncQueue.js +122 -72
- package/lib/util/SetHelpers.js +1 -1
- package/lib/util/StackedMap.js +122 -48
- package/lib/util/binarySearchBounds.js +2 -2
- package/lib/util/concatenate.js +40 -14
- package/lib/util/createHooksRegistry.js +13 -5
- package/lib/util/dataURL.js +2 -2
- package/lib/util/deterministicGrouping.js +7 -5
- package/lib/util/formatSize.js +6 -2
- package/lib/util/globUtils.js +710 -0
- package/lib/util/identifier.js +23 -6
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +88 -71
- package/lib/util/magicComment.js +121 -25
- package/lib/util/numberHash.js +2 -2
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +24 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +33 -22
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +79 -16
- package/lib/web/FetchCompileAsyncWasmPlugin.js +19 -0
- package/lib/web/FetchCompileWasmPlugin.js +14 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -0
- package/lib/webpack.js +65 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +3 -0
- package/module.d.ts +21 -0
- package/package.json +12 -11
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +759 -36
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +17 -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/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +1212 -99
|
@@ -64,6 +64,9 @@ class ModuleChunkLoadingPlugin {
|
|
|
64
64
|
compilation.hooks.runtimeRequirementInTree
|
|
65
65
|
.for(RuntimeGlobals.externalInstallChunk)
|
|
66
66
|
.tap(PLUGIN_NAME, handler);
|
|
67
|
+
compilation.hooks.runtimeRequirementInTree
|
|
68
|
+
.for(RuntimeGlobals.analyzableChunkImport)
|
|
69
|
+
.tap(PLUGIN_NAME, handler);
|
|
67
70
|
compilation.hooks.runtimeRequirementInTree
|
|
68
71
|
.for(RuntimeGlobals.onChunksLoaded)
|
|
69
72
|
.tap(PLUGIN_NAME, handler);
|
|
@@ -83,12 +86,15 @@ class ModuleChunkLoadingPlugin {
|
|
|
83
86
|
);
|
|
84
87
|
});
|
|
85
88
|
|
|
86
|
-
//
|
|
89
|
+
// The prefetch/preload handlers build the chunk URL themselves, so they need
|
|
90
|
+
// the public path and script filename directly — without relying on
|
|
91
|
+
// `ensureChunkHandlers` to pull them in (an analyzable `import()` may replace it).
|
|
87
92
|
compilation.hooks.runtimeRequirementInTree
|
|
88
93
|
.for(RuntimeGlobals.prefetchChunkHandlers)
|
|
89
94
|
.tap(PLUGIN_NAME, (chunk, set) => {
|
|
90
95
|
if (!isEnabledForChunk(chunk)) return;
|
|
91
96
|
set.add(RuntimeGlobals.publicPath);
|
|
97
|
+
set.add(RuntimeGlobals.getChunkScriptFilename);
|
|
92
98
|
});
|
|
93
99
|
|
|
94
100
|
compilation.hooks.runtimeRequirementInTree
|
|
@@ -96,6 +102,7 @@ class ModuleChunkLoadingPlugin {
|
|
|
96
102
|
.tap(PLUGIN_NAME, (chunk, set) => {
|
|
97
103
|
if (!isEnabledForChunk(chunk)) return;
|
|
98
104
|
set.add(RuntimeGlobals.publicPath);
|
|
105
|
+
set.add(RuntimeGlobals.getChunkScriptFilename);
|
|
99
106
|
});
|
|
100
107
|
|
|
101
108
|
compilation.hooks.runtimeRequirementInTree
|
|
@@ -82,6 +82,9 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
82
82
|
const withExternalInstallChunk = this._runtimeRequirements.has(
|
|
83
83
|
RuntimeGlobals.externalInstallChunk
|
|
84
84
|
);
|
|
85
|
+
const withAnalyzableImport = this._runtimeRequirements.has(
|
|
86
|
+
RuntimeGlobals.analyzableChunkImport
|
|
87
|
+
);
|
|
85
88
|
const withLoading = this._runtimeRequirements.has(
|
|
86
89
|
RuntimeGlobals.ensureChunkHandlers
|
|
87
90
|
);
|
|
@@ -147,7 +150,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
147
150
|
: installedChunksObject
|
|
148
151
|
};`,
|
|
149
152
|
"",
|
|
150
|
-
withLoading || withExternalInstallChunk
|
|
153
|
+
withLoading || withExternalInstallChunk || withAnalyzableImport
|
|
151
154
|
? `${cst} installChunk = ${runtimeTemplate.basicFunction("data", [
|
|
152
155
|
runtimeTemplate.destructureObject(
|
|
153
156
|
[
|
|
@@ -333,6 +336,31 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
333
336
|
])
|
|
334
337
|
: "// no external install chunk",
|
|
335
338
|
"",
|
|
339
|
+
withAnalyzableImport
|
|
340
|
+
? `${
|
|
341
|
+
RuntimeGlobals.analyzableChunkImport
|
|
342
|
+
} = ${runtimeTemplate.basicFunction("chunkId, importFn", [
|
|
343
|
+
// A literal `import()` a foreign bundler can follow, wrapped to keep
|
|
344
|
+
// `ensureChunk` timing and deduplication: resolved chunk → resolve now, in-flight →
|
|
345
|
+
// reuse its promise, else run `importFn()` and install it.
|
|
346
|
+
`${lt} installedChunkData = ${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;`,
|
|
347
|
+
"if(installedChunkData === 0) return Promise.resolve();",
|
|
348
|
+
"if(installedChunkData) return installedChunkData[1];",
|
|
349
|
+
`${lt} promise = importFn().then(installChunk, ${runtimeTemplate.basicFunction(
|
|
350
|
+
"e",
|
|
351
|
+
[
|
|
352
|
+
"if(installedChunks[chunkId] !== 0) installedChunks[chunkId] = undefined;",
|
|
353
|
+
"throw e;"
|
|
354
|
+
]
|
|
355
|
+
)});`,
|
|
356
|
+
`promise = Promise.race([promise, new Promise(${runtimeTemplate.expressionFunction(
|
|
357
|
+
"installedChunkData = installedChunks[chunkId] = [resolve]",
|
|
358
|
+
"resolve"
|
|
359
|
+
)})]);`,
|
|
360
|
+
"return (installedChunkData[1] = promise);"
|
|
361
|
+
])};`
|
|
362
|
+
: "// no analyzable chunk import",
|
|
363
|
+
"",
|
|
336
364
|
withOnChunkLoad
|
|
337
365
|
? `${
|
|
338
366
|
RuntimeGlobals.onChunksLoaded
|
|
@@ -27,6 +27,9 @@ module.exports = (options) => (compiler, callback) => {
|
|
|
27
27
|
const logger = compiler.getInfrastructureLogger("LazyCompilationBackend");
|
|
28
28
|
/** @type {Map<string, number>} */
|
|
29
29
|
const activeModules = new Map();
|
|
30
|
+
/** @type {Set<NodeJS.Timeout>} */
|
|
31
|
+
const idleTimers = new Set();
|
|
32
|
+
let isClosing = false;
|
|
30
33
|
const prefix = "/lazy-compilation-using-";
|
|
31
34
|
|
|
32
35
|
const isHttps =
|
|
@@ -67,19 +70,33 @@ module.exports = (options) => (compiler, callback) => {
|
|
|
67
70
|
if (req.url === undefined) return;
|
|
68
71
|
const keys = req.url.slice(prefix.length).split("@");
|
|
69
72
|
req.socket.on("close", () => {
|
|
70
|
-
|
|
73
|
+
// Shutting down: skip the idle-decrement timer entirely.
|
|
74
|
+
if (isClosing) return;
|
|
75
|
+
const timer = setTimeout(() => {
|
|
76
|
+
idleTimers.delete(timer);
|
|
71
77
|
for (const key of keys) {
|
|
72
78
|
const oldValue = activeModules.get(key) || 0;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
)
|
|
79
|
+
// Drop the entry at zero so the map doesn't retain idle modules
|
|
80
|
+
// and the count can't drift negative.
|
|
81
|
+
if (oldValue <= 1) {
|
|
82
|
+
activeModules.delete(key);
|
|
83
|
+
if (oldValue === 1) {
|
|
84
|
+
logger.log(
|
|
85
|
+
`${key} is no longer in use. Next compilation will skip this module.`
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
} else {
|
|
89
|
+
activeModules.set(key, oldValue - 1);
|
|
78
90
|
}
|
|
79
91
|
}
|
|
80
92
|
}, 120000);
|
|
93
|
+
// Don't keep the process alive just to decrement idle counters.
|
|
94
|
+
if (timer.unref) timer.unref();
|
|
95
|
+
idleTimers.add(timer);
|
|
81
96
|
});
|
|
82
|
-
|
|
97
|
+
// Not all runtimes expose `setNoDelay` on the request socket (e.g. Deno's
|
|
98
|
+
// HTTP server); it's only a latency optimization, so skip it when absent.
|
|
99
|
+
if (req.socket.setNoDelay) req.socket.setNoDelay(true);
|
|
83
100
|
res.writeHead(200, {
|
|
84
101
|
"content-type": "text/event-stream",
|
|
85
102
|
"Access-Control-Allow-Origin": "*",
|
|
@@ -102,7 +119,6 @@ module.exports = (options) => (compiler, callback) => {
|
|
|
102
119
|
const server = createServer();
|
|
103
120
|
server.on("request", requestListener);
|
|
104
121
|
|
|
105
|
-
let isClosing = false;
|
|
106
122
|
/** @type {Set<import("net").Socket>} */
|
|
107
123
|
const sockets = new Set();
|
|
108
124
|
server.on("connection", (socket) => {
|
|
@@ -113,7 +129,15 @@ module.exports = (options) => (compiler, callback) => {
|
|
|
113
129
|
if (isClosing) socket.destroy();
|
|
114
130
|
});
|
|
115
131
|
server.on("clientError", (e) => {
|
|
116
|
-
|
|
132
|
+
// A closing browser tab or a test tearing down aborts the request and
|
|
133
|
+
// resets the socket; that surfaces here as ECONNRESET and is benign.
|
|
134
|
+
if (
|
|
135
|
+
e.message === "Server is disposing" ||
|
|
136
|
+
/** @type {NodeJS.ErrnoException} */ (e).code === "ECONNRESET"
|
|
137
|
+
) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
logger.warn(e);
|
|
117
141
|
});
|
|
118
142
|
|
|
119
143
|
server.on(
|
|
@@ -142,14 +166,29 @@ module.exports = (options) => (compiler, callback) => {
|
|
|
142
166
|
callback(null, {
|
|
143
167
|
dispose(callback) {
|
|
144
168
|
isClosing = true;
|
|
169
|
+
for (const timer of idleTimers) clearTimeout(timer);
|
|
170
|
+
idleTimers.clear();
|
|
145
171
|
// Removing the listener is a workaround for a memory leak in node.js
|
|
146
172
|
server.off("request", requestListener);
|
|
147
|
-
server.close((err) => {
|
|
148
|
-
callback(err);
|
|
149
|
-
});
|
|
150
173
|
for (const socket of sockets) {
|
|
151
174
|
socket.destroy(new Error("Server is disposing"));
|
|
152
175
|
}
|
|
176
|
+
// Some runtimes (e.g. Deno) don't emit "connection", so `sockets`
|
|
177
|
+
// misses the open SSE connections and `server.close` would hang;
|
|
178
|
+
// force-close everything before waiting for it.
|
|
179
|
+
if (server.closeAllConnections) server.closeAllConnections();
|
|
180
|
+
server.close((err) => {
|
|
181
|
+
// `closeAllConnections()` already stops the server on some runtimes
|
|
182
|
+
// (e.g. Bun), so `close` then reports ERR_SERVER_NOT_RUNNING; the
|
|
183
|
+
// server is closed either way, so that's not a dispose failure.
|
|
184
|
+
callback(
|
|
185
|
+
err &&
|
|
186
|
+
/** @type {NodeJS.ErrnoException} */ (err).code !==
|
|
187
|
+
"ERR_SERVER_NOT_RUNNING"
|
|
188
|
+
? err
|
|
189
|
+
: null
|
|
190
|
+
);
|
|
191
|
+
});
|
|
153
192
|
},
|
|
154
193
|
module(originalModule) {
|
|
155
194
|
const key = `${encodeURIComponent(
|