Skip to content

Commit cc254ac

Browse files
Merge pull request #9 from module-federation/add_runtime_requirements_
adding runtime requirements to promise externals
2 parents 3a1c50d + 966f9bf commit cc254ac

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

ExtendedModuleFederationPlugin.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ const GenerateChunkMap = require("./src/GenerateChunkMap");
55
const GenerateModuleMap = require("./src/GenerateModuleMap");
66
const GenerateRemoteMap = require("./src/GenerateRemoteMap");
77
const GenerateRemoteUrlMap = require("./src/GenerateRemoteUrlMap");
8+
const AddRuntimeRequirementsToExternal = require("./src/AddRuntimeRequirementsToExternal");
9+
810

911
class ExtendedModuleFederationPlugin extends ModuleFederationPlugin {
1012
constructor(options) {
@@ -25,6 +27,7 @@ class ExtendedModuleFederationPlugin extends ModuleFederationPlugin {
2527
apply(compiler) {
2628
super.apply(compiler);
2729
GenerateChunkMap(compiler);
30+
new AddRuntimeRequirementsToExternal().apply(compiler)
2831
}
2932
}
3033
module.exports = ExtendedModuleFederationPlugin;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class AddRuntimeRequiremetToPromiseExternal {
2+
apply(compiler) {
3+
compiler.hooks.compilation.tap(
4+
"AddRuntimeRequiremetToPromiseExternal",
5+
(compilation) => {
6+
const RuntimeGlobals = compiler.webpack.RuntimeGlobals;
7+
if (compilation.outputOptions.trustedTypes) {
8+
compilation.hooks.additionalModuleRuntimeRequirements.tap(
9+
"AddRuntimeRequiremetToPromiseExternal",
10+
(module, set, context) => {
11+
if (module.externalType === "promise") {
12+
set.add(RuntimeGlobals.loadScript);
13+
}
14+
}
15+
);
16+
}
17+
}
18+
);
19+
}
20+
}
21+
22+
module.exports = AddRuntimeRequiremetToPromiseExternal

0 commit comments

Comments
 (0)