-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathModuleFederationEnhancedPlugin.js
More file actions
35 lines (30 loc) · 1.1 KB
/
ModuleFederationEnhancedPlugin.js
File metadata and controls
35 lines (30 loc) · 1.1 KB
1
2
3
4
5
6
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
const ModuleFederationPlugin =
require("webpack").container.ModuleFederationPlugin;
const GenerateChunkMap = require("./src/GenerateChunkMap");
const GenerateModuleMap = require("./src/GenerateModuleMap");
const GenerateRemoteMap = require("./src/GenerateRemoteMap");
const GenerateRemoteUrlMap = require("./src/GenerateRemoteUrlMap");
const AddRuntimeRequirementsToExternal = require("./src/AddRuntimeRequirementsToExternal");
const HandleRemoteObject = require("./src/HandleRemoteObject");
class ModuleFederationEnhancedPlugin extends ModuleFederationPlugin {
constructor(options) {
if (!options.exposes) {
options.exposes = {};
}
options.exposes = {
...options.exposes,
...GenerateModuleMap(options),
...GenerateRemoteMap(options),
...GenerateRemoteUrlMap(options),
};
options.remotes = HandleRemoteObject(options.remotes);
super(options);
this.options = options;
}
apply(compiler) {
super.apply(compiler);
GenerateChunkMap(compiler);
new AddRuntimeRequirementsToExternal().apply(compiler)
}
}
module.exports = ModuleFederationEnhancedPlugin;