From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送
---
node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js | 28 +++++++++++++++++++++++++++-
1 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js b/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js
index bf8f273..cc76003 100644
--- a/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js
+++ b/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js
@@ -8,12 +8,14 @@
const { WEBASSEMBLY_MODULE_TYPE_ASYNC } = require("../ModuleTypeConstants");
const RuntimeGlobals = require("../RuntimeGlobals");
const Template = require("../Template");
+const AsyncWasmCompileRuntimeModule = require("../wasm-async/AsyncWasmCompileRuntimeModule");
const AsyncWasmLoadingRuntimeModule = require("../wasm-async/AsyncWasmLoadingRuntimeModule");
/** @typedef {import("../Chunk")} Chunk */
/** @typedef {import("../Compiler")} Compiler */
/**
+ * Defines the read file compile async wasm plugin options type used by this module.
* @typedef {object} ReadFileCompileAsyncWasmPluginOptions
* @property {boolean=} import use import?
*/
@@ -22,14 +24,16 @@
class ReadFileCompileAsyncWasmPlugin {
/**
+ * Creates an instance of ReadFileCompileAsyncWasmPlugin.
* @param {ReadFileCompileAsyncWasmPluginOptions=} options options object
*/
constructor({ import: useImport = false } = {}) {
+ /** @type {boolean} */
this._import = useImport;
}
/**
- * Apply the plugin
+ * Applies the plugin by registering its hooks on the compiler.
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
@@ -37,6 +41,7 @@
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
const globalWasmLoading = compilation.outputOptions.wasmLoading;
/**
+ * Checks whether this read file compile async wasm plugin is enabled for chunk.
* @param {Chunk} chunk chunk
* @returns {boolean} true, if wasm loading is enabled for the chunk
*/
@@ -115,6 +120,27 @@
})
);
});
+
+ compilation.hooks.runtimeRequirementInTree
+ .for(RuntimeGlobals.compileWasm)
+ .tap(PLUGIN_NAME, (chunk, set, { chunkGraph }) => {
+ if (!isEnabledForChunk(chunk)) return;
+ if (
+ !chunkGraph.hasModuleInGraph(
+ chunk,
+ (m) => m.type === WEBASSEMBLY_MODULE_TYPE_ASYNC
+ )
+ ) {
+ return;
+ }
+ compilation.addRuntimeModule(
+ chunk,
+ new AsyncWasmCompileRuntimeModule({
+ generateLoadBinaryCode,
+ supportsStreaming: false
+ })
+ );
+ });
});
}
}
--
Gitblit v1.9.3