@module-federation/node 2.1.0-canary.5 → 2.1.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/LICENSE +21 -0
- package/README.md +191 -0
- package/dist/jest.config.js.map +1 -0
- package/dist/package.json +78 -0
- package/dist/src/filesystem/stratagies.d.ts +18 -0
- package/{src → dist/src}/filesystem/stratagies.js +22 -9
- package/dist/src/filesystem/stratagies.js.map +1 -0
- package/{src → dist/src}/index.d.ts +0 -2
- package/{src → dist/src}/index.js +1 -5
- package/dist/src/index.js.map +1 -0
- package/{src → dist/src}/plugins/AutomaticPublicPathPlugin.d.ts +1 -1
- package/{src → dist/src}/plugins/AutomaticPublicPathPlugin.js +3 -3
- package/dist/src/plugins/AutomaticPublicPathPlugin.js.map +1 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.js.map +1 -0
- package/{src → dist/src}/plugins/CommonJsChunkLoadingPlugin.js +24 -23
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.js.map +1 -0
- package/{src → dist/src}/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts +1 -1
- package/{src → dist/src}/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js +28 -56
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js.map +1 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.d.ts +13 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.js +41 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.js.map +1 -0
- package/{src → dist/src}/plugins/NodeFederationPlugin.d.ts +0 -20
- package/dist/src/plugins/NodeFederationPlugin.js +79 -0
- package/dist/src/plugins/NodeFederationPlugin.js.map +1 -0
- package/{src → dist/src}/plugins/RemotePublicPathRuntimeModule.d.ts +1 -1
- package/dist/src/plugins/RemotePublicPathRuntimeModule.js +132 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.js.map +1 -0
- package/{src → dist/src}/plugins/StreamingTargetPlugin.d.ts +2 -2
- package/{src → dist/src}/plugins/StreamingTargetPlugin.js.map +1 -1
- package/{src → dist/src}/plugins/UniversalFederationPlugin.d.ts +1 -0
- package/{src → dist/src}/plugins/UniversalFederationPlugin.js +7 -3
- package/dist/src/plugins/UniversalFederationPlugin.js.map +1 -0
- package/{src → dist/src}/plugins/webpackChunkUtilities.d.ts +1 -1
- package/{src → dist/src}/plugins/webpackChunkUtilities.js +70 -89
- package/dist/src/plugins/webpackChunkUtilities.js.map +1 -0
- package/dist/src/types/index.js.map +1 -0
- package/{src → dist/src}/utils/flush-chunks.d.ts +2 -1
- package/{src → dist/src}/utils/flush-chunks.js +43 -33
- package/dist/src/utils/flush-chunks.js.map +1 -0
- package/{src → dist/src}/utils/hot-reload.d.ts +3 -3
- package/{src → dist/src}/utils/hot-reload.js +59 -17
- package/dist/src/utils/hot-reload.js.map +1 -0
- package/dist/src/utils/index.js.map +1 -0
- package/package.json +22 -18
- package/jest.config.js.map +0 -1
- package/src/filesystem/stratagies.d.ts +0 -11
- package/src/filesystem/stratagies.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/plugins/AutomaticPublicPathPlugin.js.map +0 -1
- package/src/plugins/ChunkCorrelationPlugin.js.map +0 -1
- package/src/plugins/CommonJsChunkLoadingPlugin.js.map +0 -1
- package/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js.map +0 -1
- package/src/plugins/NodeContainerPlugin.d.ts +0 -57
- package/src/plugins/NodeContainerPlugin.js +0 -105
- package/src/plugins/NodeContainerPlugin.js.map +0 -1
- package/src/plugins/NodeFederationPlugin.js +0 -127
- package/src/plugins/NodeFederationPlugin.js.map +0 -1
- package/src/plugins/RemotePublicPathRuntimeModule.js +0 -109
- package/src/plugins/RemotePublicPathRuntimeModule.js.map +0 -1
- package/src/plugins/UniversalFederationPlugin.js.map +0 -1
- package/src/plugins/webpackChunkUtilities.js.map +0 -1
- package/src/types/index.js.map +0 -1
- package/src/utils/flush-chunks.js.map +0 -1
- package/src/utils/hot-reload.js.map +0 -1
- package/src/utils/index.js.map +0 -1
- package/{jest.config.d.ts → dist/jest.config.d.ts} +0 -0
- package/{jest.config.js → dist/jest.config.js} +0 -0
- package/{src → dist/src}/plugins/ChunkCorrelationPlugin.d.ts +6 -6
- /package/{src → dist/src}/plugins/ChunkCorrelationPlugin.js +0 -0
- /package/{src → dist/src}/plugins/CommonJsChunkLoadingPlugin.d.ts +0 -0
- /package/{src → dist/src}/plugins/StreamingTargetPlugin.js +0 -0
- /package/{src → dist/src}/types/index.d.ts +0 -0
- /package/{src → dist/src}/types/index.js +0 -0
- /package/{src → dist/src}/utils/index.d.ts +0 -0
- /package/{src → dist/src}/utils/index.js +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 ScriptedAlchemy LLC (Zack Jackson)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://github.com/module-federation/nextjs-mf/blob/main/packages/node/assets/banner.png" width="800"/>
|
|
3
|
+
</p>
|
|
4
|
+
<div align="center">
|
|
5
|
+
<!-- for version -->
|
|
6
|
+
<img src="https://img.shields.io/npm/v/@module-federation/node" alt="version" >
|
|
7
|
+
<img src="https://img.shields.io/npm/l/@module-federation/node.svg?" alt="license" >
|
|
8
|
+
<!-- for downloads -->
|
|
9
|
+
<img src="https://img.shields.io/npm/dt/@module-federation/node" alt="downloads">
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<strong>A package to bring the concept and power of module federation to NodeJS.</strong>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
## ⚡ Features
|
|
17
|
+
|
|
18
|
+
- Exposes two Webpack Plugins to enable Module Federation.
|
|
19
|
+
- Can exported as UniversalFederationPlugin or NodeFederationPlugin with StreamingTargetPlugin
|
|
20
|
+
- Allows server to fetch chunks across the network.
|
|
21
|
+
- Allow distributed deployments of federated applications.
|
|
22
|
+
|
|
23
|
+
## 📦 Installation
|
|
24
|
+
|
|
25
|
+
To install the plugin run one of the following commands in your terminal for your application.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# npm
|
|
29
|
+
npm install @module-federation/node
|
|
30
|
+
|
|
31
|
+
# yarn
|
|
32
|
+
yarn add @module-federation/node
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 🚀 Usage
|
|
36
|
+
|
|
37
|
+
There are two approaches to using the plugins exported from this package, dependent on your use case.
|
|
38
|
+
|
|
39
|
+
### UniversalFederationPlugin
|
|
40
|
+
|
|
41
|
+
This plugin is an abstraction over both `NodeFederationPlugin` and `ModuleFederationPlugin`. It will alternate between which it uses based on where the build is intended to be used.
|
|
42
|
+
|
|
43
|
+
If the build is intended to be used on the `browser`, it will use the standard `ModuleFederationPlugin` and bundle your code accordingly, however, if it is intended for `server` usage, it will use `NodeFederationPlugin` to create the bundle.
|
|
44
|
+
|
|
45
|
+
This simplifies the code required in your `webpack.config.js` to enable SSR Module Federation. It determines which platform it needs to build for based on two things:
|
|
46
|
+
|
|
47
|
+
1. If the options passed to the plugin has specified `isServer: true`
|
|
48
|
+
2. If the name assigned to the config being used is `server`
|
|
49
|
+
|
|
50
|
+
It accepts the other standard options from `ModuleFederationPlugin` as well. You can see an example usage below:
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
const { UniversalFederationPlugin } = require('@module-federation/node');
|
|
54
|
+
|
|
55
|
+
const config = {
|
|
56
|
+
target: isServer ? false : 'web',
|
|
57
|
+
plugins: [
|
|
58
|
+
new UniversalFederationPlugin({
|
|
59
|
+
name: 'website2',
|
|
60
|
+
library: { type: 'commonjs-module' },
|
|
61
|
+
isServer: true, // or false
|
|
62
|
+
remotes: {},
|
|
63
|
+
filename: 'remoteEntry.js',
|
|
64
|
+
exposes: {
|
|
65
|
+
'./SharedComponent': './remoteServer/SharedComponent',
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### NodeFederationPlugin and StreamingTargetPlugin
|
|
73
|
+
|
|
74
|
+
You can also use each of the underlying plugins individually if you need more control over when they are used.
|
|
75
|
+
|
|
76
|
+
At build time, you need to be aware if you're building for the `server` or for the `browser`.
|
|
77
|
+
If it's building for server, we need to set `target: false` to allow the plugins to function correctly.
|
|
78
|
+
|
|
79
|
+
The `NodeFederationPlugin` follows the same API as the [Module Federation Plugin](https://webpack.js.org/plugins/module-federation-plugin) and therefore should be a drop-in replacement if you already have it set up in your `webpack.config.js`.
|
|
80
|
+
|
|
81
|
+
### 🔧 Config Example
|
|
82
|
+
|
|
83
|
+
An example configuration is presented below:
|
|
84
|
+
|
|
85
|
+
```js
|
|
86
|
+
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
|
|
87
|
+
|
|
88
|
+
const config = {
|
|
89
|
+
target: isServer ? false : 'web',
|
|
90
|
+
plugins: [
|
|
91
|
+
new NodeFederationPlugin({
|
|
92
|
+
name: 'website2',
|
|
93
|
+
library: { type: 'commonjs-module' },
|
|
94
|
+
remotes: {},
|
|
95
|
+
filename: 'remoteEntry.js',
|
|
96
|
+
exposes: {
|
|
97
|
+
'./SharedComponent': './remoteServer/SharedComponent',
|
|
98
|
+
},
|
|
99
|
+
}),
|
|
100
|
+
new StreamingTargetPlugin({
|
|
101
|
+
name: 'website2',
|
|
102
|
+
library: { type: 'commonjs-module' },
|
|
103
|
+
remotes: {},
|
|
104
|
+
}),
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Utilities
|
|
110
|
+
|
|
111
|
+
This package also exposes a few utilities to help with the setup of your federated application.
|
|
112
|
+
|
|
113
|
+
### revalidate
|
|
114
|
+
|
|
115
|
+
Used to "hot reload" the federated application.
|
|
116
|
+
|
|
117
|
+
- This is useful when you're developing your federated application and want to see changes without having to restart the server.
|
|
118
|
+
- Also useful for production environments where you want to be able to update the federated application without having to restart the server.
|
|
119
|
+
|
|
120
|
+
```js
|
|
121
|
+
import { revalidate } from '@module-federation/node/utils';
|
|
122
|
+
|
|
123
|
+
// we automatically reset require cache, so the reload callback is only if you need to do something else
|
|
124
|
+
revalidate().then((shouldReload) => {
|
|
125
|
+
// do something extra after revalidation
|
|
126
|
+
if (shouldReload) {
|
|
127
|
+
// reload the server
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
_Note_: To ensure that changes made to files in remotes are picked up `revalidate`, you can set the remotes webpack [output.filename](https://webpack.js.org/configuration/output/#outputfilename) to `[name]-[contenthash].js` (or similar). This will cause the remoteEntry.js file to be regenerated with a unique hash every time a new build occurs. The revalidate method intelligently detects changes by comparing the hashes of the remoteEntry.js files. By incorporating [contenthash] into the remote's webpack configuration, you enable the shell to seamlessly incorporate the updated files from the remotes.
|
|
133
|
+
|
|
134
|
+
**Hot reloading Express.js**
|
|
135
|
+
|
|
136
|
+
Express has its own route stack, so reloading require cache will not be enough to reload the routes inside express.
|
|
137
|
+
|
|
138
|
+
```js
|
|
139
|
+
//express.js
|
|
140
|
+
const app = express();
|
|
141
|
+
|
|
142
|
+
global.clearRoutes = () => {
|
|
143
|
+
app._router.stack = app._router.stack.filter((k) => !(k && k.route && k.route.path));
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// in some other file (within the scope of webpack build)
|
|
147
|
+
// wherever you have your revalidation logic
|
|
148
|
+
revalidate().then((shouldReload) => {
|
|
149
|
+
if (shouldReload) {
|
|
150
|
+
global.clearRoutes();
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Overriding default http chunk fetch
|
|
156
|
+
|
|
157
|
+
```js
|
|
158
|
+
const chunkFetcher = globalThis.webpackChunkLoad || globalThis.fetch || fetchPolyfill;
|
|
159
|
+
// then it will pass one argument to the function, the url to fetch
|
|
160
|
+
|
|
161
|
+
chunkFetcher(url)
|
|
162
|
+
.then((res) => res.text())
|
|
163
|
+
.then((text) => {
|
|
164
|
+
// do something with the text
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
If you want to use your own custom fetch, or add fetch headers, either in the entrypoint of webpack or outside of webpack scope, like in express server you can override the default chunk fetcher by setting the `globalThis.webpackChunkLoad` variable.
|
|
169
|
+
|
|
170
|
+
```js
|
|
171
|
+
globalThis.webpackChunkLoad = async (url) => {
|
|
172
|
+
const res = await fetch(url, {
|
|
173
|
+
headers: {
|
|
174
|
+
'x-custom-header': 'custom-header-value',
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
return res.text();
|
|
178
|
+
};
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## 🔑 License
|
|
182
|
+
|
|
183
|
+
- MIT @[ScriptedAlchemy](https://github.com/ScriptedAlchemy)
|
|
184
|
+
|
|
185
|
+
## 👨💻 Contributors
|
|
186
|
+
|
|
187
|
+
List of our amazing contributors 💥
|
|
188
|
+
|
|
189
|
+
<a href="https://github.com/module-federation/nextjs-mf/graphs/contributors">
|
|
190
|
+
<img src="https://contrib.rocks/image?repo=module-federation/node" />
|
|
191
|
+
</a>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,MAAM,CAAC,OAAO,GAAG;IACf,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,sBAAsB;IAC9B,OAAO,EAAE,EAAE;IACX,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE;QACT,cAAc,EAAE;YACd,SAAS;YACT;gBACE,QAAQ,EAAE,8BAA8B;aACzC;SACF;KACF;IACD,oBAAoB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;IAC1C,iBAAiB,EAAE,8BAA8B;CAClD,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"public": true,
|
|
3
|
+
"name": "@module-federation/node",
|
|
4
|
+
"version": "2.1.0",
|
|
5
|
+
"type": "commonjs",
|
|
6
|
+
"main": "./src/index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/src/index.js",
|
|
10
|
+
"require": "./dist/src/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./package.json": "./package.json",
|
|
13
|
+
"./utils": {
|
|
14
|
+
"import": "./dist/src/utils/index.js",
|
|
15
|
+
"require": "./dist/src/utils/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./src/plugins/RemotePublicPathPlugin.js": "./dist/src/plugins/RemotePublicPathPlugin.js",
|
|
18
|
+
"./src/plugins/NodeFederationPlugin.js": "./dist/src/plugins/NodeFederationPlugin.js",
|
|
19
|
+
"./src/": "./dist/src/"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/",
|
|
23
|
+
"README.md"
|
|
24
|
+
],
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"tags": [
|
|
29
|
+
"module-federation",
|
|
30
|
+
"node",
|
|
31
|
+
"webpack",
|
|
32
|
+
"node-federation",
|
|
33
|
+
"node-module-federation",
|
|
34
|
+
"ssr"
|
|
35
|
+
],
|
|
36
|
+
"types": "src/index.d.ts",
|
|
37
|
+
"description": "Module Federation helper for Node",
|
|
38
|
+
"repository": "https://github.com/module-federation/universe/tree/main/packages/node",
|
|
39
|
+
"author": "Zack Jackson <zackary.l.jackson@gmail.com>",
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@module-federation/enhanced": "workspace:*",
|
|
43
|
+
"@module-federation/runtime": "workspace:*",
|
|
44
|
+
"@module-federation/runtime-tools": "0.0.8",
|
|
45
|
+
"@module-federation/sdk": "workspace:*",
|
|
46
|
+
"@module-federation/utilities": "workspace:*",
|
|
47
|
+
"@module-federation/webpack-bundler-runtime": "0.0.8",
|
|
48
|
+
"chalk": "3.0.0",
|
|
49
|
+
"encoding": "^0.1.13",
|
|
50
|
+
"find-pkg": "2.0.0",
|
|
51
|
+
"fs-extra": "9.1.0",
|
|
52
|
+
"node-fetch": "2.7.0",
|
|
53
|
+
"semver": "6.3.1",
|
|
54
|
+
"tapable": "2.2.1",
|
|
55
|
+
"upath": "2.0.1",
|
|
56
|
+
"url": "0.11.3",
|
|
57
|
+
"webpack-sources": "3.2.3",
|
|
58
|
+
"@module-federation/managers": "0.1.0",
|
|
59
|
+
"@module-federation/manifest": "0.1.0"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"next": "^12||^13",
|
|
63
|
+
"react": "^16||^17||^18",
|
|
64
|
+
"react-dom": "^16||^17||^18",
|
|
65
|
+
"webpack": "^5.40.0"
|
|
66
|
+
},
|
|
67
|
+
"peerDependenciesMeta": {
|
|
68
|
+
"next": {
|
|
69
|
+
"optional": true
|
|
70
|
+
},
|
|
71
|
+
"react": {
|
|
72
|
+
"optional": true
|
|
73
|
+
},
|
|
74
|
+
"react-dom": {
|
|
75
|
+
"optional": true
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function fileSystemRunInContextStrategy(chunkId: string, rootOutputDir: string, remotes: Remotes, callback: CallbackFunction): Promise<void>;
|
|
2
|
+
export declare function httpEvalStrategy(chunkName: string, remoteName: string, remotes: Remotes, callback: CallbackFunction): Promise<void>;
|
|
3
|
+
interface Remotes {
|
|
4
|
+
[key: string]: {
|
|
5
|
+
entry: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
type CallbackFunction = (error: Error | null, chunk?: any) => void;
|
|
9
|
+
/**
|
|
10
|
+
* HttpVmStrategy
|
|
11
|
+
* This function is used to execute a chunk of code in a VM using HTTP or HTTPS based on the protocol.
|
|
12
|
+
* @param {string} chunkName - The name of the chunk to be executed.
|
|
13
|
+
* @param {string} remoteName - The name of the remote server.
|
|
14
|
+
* @param {Remotes} remotes - An object containing the remote servers.
|
|
15
|
+
* @param {CallbackFunction} callback - A callback function to be executed after the chunk is executed.
|
|
16
|
+
*/
|
|
17
|
+
export declare function httpVmStrategy(chunkName: string, remoteName: string, remotes: Remotes, callback: CallbackFunction): Promise<void>;
|
|
18
|
+
export {};
|
|
@@ -39,7 +39,7 @@ async function httpEvalStrategy(chunkName, remoteName, remotes, callback) {
|
|
|
39
39
|
url = new URL(chunkName, __webpack_require__.p);
|
|
40
40
|
}
|
|
41
41
|
catch (e) {
|
|
42
|
-
console.error('module-federation: failed to construct absolute chunk path of', remoteName, 'for', chunkName
|
|
42
|
+
console.error('module-federation: failed to construct absolute chunk path of', remoteName, 'for', chunkName);
|
|
43
43
|
url = new URL(remotes[remoteName]);
|
|
44
44
|
const getBasenameFromUrl = (url) => {
|
|
45
45
|
const urlParts = url.split('/');
|
|
@@ -52,7 +52,7 @@ async function httpEvalStrategy(chunkName, remoteName, remotes, callback) {
|
|
|
52
52
|
const chunk = {};
|
|
53
53
|
try {
|
|
54
54
|
const urlDirname = url.pathname.split('/').slice(0, -1).join('/');
|
|
55
|
-
eval('(function(exports, require, __dirname, __filename) {' + data + '\n})'
|
|
55
|
+
eval('(function(exports, require, __dirname, __filename) {' + data + '\n})')(chunk, require, urlDirname, chunkName);
|
|
56
56
|
callback(null, chunk);
|
|
57
57
|
}
|
|
58
58
|
catch (e) {
|
|
@@ -65,8 +65,8 @@ exports.httpEvalStrategy = httpEvalStrategy;
|
|
|
65
65
|
* This function is used to execute a chunk of code in a VM using HTTP or HTTPS based on the protocol.
|
|
66
66
|
* @param {string} chunkName - The name of the chunk to be executed.
|
|
67
67
|
* @param {string} remoteName - The name of the remote server.
|
|
68
|
-
* @param {
|
|
69
|
-
* @param {
|
|
68
|
+
* @param {Remotes} remotes - An object containing the remote servers.
|
|
69
|
+
* @param {CallbackFunction} callback - A callback function to be executed after the chunk is executed.
|
|
70
70
|
*/
|
|
71
71
|
async function httpVmStrategy(chunkName, remoteName, remotes, callback) {
|
|
72
72
|
const http = require('http');
|
|
@@ -74,25 +74,38 @@ async function httpVmStrategy(chunkName, remoteName, remotes, callback) {
|
|
|
74
74
|
const vm = require('vm');
|
|
75
75
|
const path = require('path');
|
|
76
76
|
let url;
|
|
77
|
+
const globalThisVal = new Function('return globalThis')();
|
|
77
78
|
try {
|
|
78
79
|
url = new URL(chunkName, __webpack_require__.p);
|
|
79
80
|
}
|
|
80
81
|
catch (e) {
|
|
81
|
-
console.error('module-federation: failed to construct absolute chunk path of', remoteName, 'for', chunkName
|
|
82
|
-
|
|
82
|
+
console.error('module-federation: failed to construct absolute chunk path of', remoteName, 'for', chunkName);
|
|
83
|
+
// search all instances to see if any have the remote
|
|
84
|
+
const container = globalThisVal['__FEDERATION__']['__INSTANCES__'].find((instance) => {
|
|
85
|
+
if (!instance.moduleCache.has(remoteName))
|
|
86
|
+
return;
|
|
87
|
+
const container = instance.moduleCache.get(remoteName);
|
|
88
|
+
if (!container.remoteInfo)
|
|
89
|
+
return;
|
|
90
|
+
return container.remoteInfo.entry;
|
|
91
|
+
});
|
|
92
|
+
if (!container) {
|
|
93
|
+
throw new Error('Container not found');
|
|
94
|
+
}
|
|
95
|
+
url = new URL(container.moduleCache.get(remoteName).remoteInfo.entry);
|
|
83
96
|
const fileToReplace = path.basename(url.pathname);
|
|
84
97
|
url.pathname = url.pathname.replace(fileToReplace, chunkName);
|
|
85
98
|
}
|
|
86
99
|
const protocol = url.protocol === 'https:' ? https : http;
|
|
87
|
-
protocol.get(url, (res) => {
|
|
100
|
+
protocol.get(url.href, (res) => {
|
|
88
101
|
let data = '';
|
|
89
102
|
res.on('data', (chunk) => {
|
|
90
|
-
data += chunk;
|
|
103
|
+
data += chunk.toString();
|
|
91
104
|
});
|
|
92
105
|
res.on('end', () => {
|
|
93
106
|
const chunk = {};
|
|
94
107
|
const urlDirname = url.pathname.split('/').slice(0, -1).join('/');
|
|
95
|
-
vm.runInThisContext(
|
|
108
|
+
vm.runInThisContext(`(function(exports, require, __dirname, __filename) {${data}\n})`, chunkName)(chunk, require, urlDirname, chunkName);
|
|
96
109
|
callback(null, chunk);
|
|
97
110
|
});
|
|
98
111
|
res.on('error', (err) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stratagies.js","sourceRoot":"","sources":["../../../src/filesystem/stratagies.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,3 @@ export { default as NodeFederationPlugin } from './plugins/NodeFederationPlugin'
|
|
|
3
3
|
export { default as UniversalFederationPlugin } from './plugins/UniversalFederationPlugin';
|
|
4
4
|
export { default as ChunkCorrelationPlugin } from './plugins/ChunkCorrelationPlugin';
|
|
5
5
|
export { default as RemotePublicPathPlugin } from './plugins/RemotePublicPathRuntimeModule';
|
|
6
|
-
export { default as NodeContainerPlugin } from './plugins/NodeContainerPlugin';
|
|
7
|
-
export { parseRemotes } from './plugins/NodeFederationPlugin';
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.RemotePublicPathPlugin = exports.ChunkCorrelationPlugin = exports.UniversalFederationPlugin = exports.NodeFederationPlugin = exports.StreamingTargetPlugin = void 0;
|
|
7
7
|
var StreamingTargetPlugin_1 = require("./plugins/StreamingTargetPlugin");
|
|
8
8
|
Object.defineProperty(exports, "StreamingTargetPlugin", { enumerable: true, get: function () { return __importDefault(StreamingTargetPlugin_1).default; } });
|
|
9
9
|
var NodeFederationPlugin_1 = require("./plugins/NodeFederationPlugin");
|
|
@@ -14,8 +14,4 @@ var ChunkCorrelationPlugin_1 = require("./plugins/ChunkCorrelationPlugin");
|
|
|
14
14
|
Object.defineProperty(exports, "ChunkCorrelationPlugin", { enumerable: true, get: function () { return __importDefault(ChunkCorrelationPlugin_1).default; } });
|
|
15
15
|
var RemotePublicPathRuntimeModule_1 = require("./plugins/RemotePublicPathRuntimeModule");
|
|
16
16
|
Object.defineProperty(exports, "RemotePublicPathPlugin", { enumerable: true, get: function () { return __importDefault(RemotePublicPathRuntimeModule_1).default; } });
|
|
17
|
-
var NodeContainerPlugin_1 = require("./plugins/NodeContainerPlugin");
|
|
18
|
-
Object.defineProperty(exports, "NodeContainerPlugin", { enumerable: true, get: function () { return __importDefault(NodeContainerPlugin_1).default; } });
|
|
19
|
-
var NodeFederationPlugin_2 = require("./plugins/NodeFederationPlugin");
|
|
20
|
-
Object.defineProperty(exports, "parseRemotes", { enumerable: true, get: function () { return NodeFederationPlugin_2.parseRemotes; } });
|
|
21
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAmF;AAA1E,+IAAA,OAAO,OAAyB;AACzC,uEAAiF;AAAxE,6IAAA,OAAO,OAAwB;AACxC,iFAA2F;AAAlF,uJAAA,OAAO,OAA6B;AAC7C,2EAAqF;AAA5E,iJAAA,OAAO,OAA0B;AAC1C,yFAA4F;AAAnF,wJAAA,OAAO,OAA0B"}
|
|
@@ -3,16 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const webpack_1 = require("webpack");
|
|
7
6
|
const RemotePublicPathRuntimeModule_1 = __importDefault(require("./RemotePublicPathRuntimeModule"));
|
|
8
7
|
class RemotePublicPathPlugin {
|
|
9
8
|
constructor(options) {
|
|
10
9
|
this.options = options;
|
|
11
10
|
}
|
|
12
11
|
apply(compiler) {
|
|
12
|
+
const { RuntimeGlobals } = compiler.webpack;
|
|
13
13
|
compiler.hooks.thisCompilation.tap('RemotePublicPathPlugin', (compilation) => {
|
|
14
14
|
compilation.hooks.runtimeRequirementInTree
|
|
15
|
-
.for(
|
|
15
|
+
.for(RuntimeGlobals.publicPath)
|
|
16
16
|
.tap('RuntimePlugin', (chunk, set) => {
|
|
17
17
|
const { outputOptions } = compilation;
|
|
18
18
|
const { publicPath: globalPublicPath, scriptType } = outputOptions;
|
|
@@ -22,7 +22,7 @@ class RemotePublicPathPlugin {
|
|
|
22
22
|
: globalPublicPath;
|
|
23
23
|
const module = new RemotePublicPathRuntimeModule_1.default(this.options);
|
|
24
24
|
if (publicPath === 'auto' && scriptType !== 'module') {
|
|
25
|
-
set.add(
|
|
25
|
+
set.add(RuntimeGlobals.global);
|
|
26
26
|
}
|
|
27
27
|
else if (typeof publicPath !== 'string' ||
|
|
28
28
|
/\[(full)?hash\]/.test(publicPath)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutomaticPublicPathPlugin.js","sourceRoot":"","sources":["../../../src/plugins/AutomaticPublicPathPlugin.ts"],"names":[],"mappings":";;;;;AAEA,oGAA4E;AAI5E,MAAM,sBAAsB;IAG1B,YAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5C,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,wBAAwB,EACxB,CAAC,WAAW,EAAE,EAAE;YACd,WAAW,CAAC,KAAK,CAAC,wBAAwB;iBACvC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC;iBAC9B,GAAG,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACnC,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;gBACtC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;gBACnE,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC7C,MAAM,UAAU,GACd,YAAY,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS;oBACnD,CAAC,CAAC,YAAY,CAAC,UAAU;oBACzB,CAAC,CAAC,gBAAgB,CAAC;gBAEvB,MAAM,MAAM,GAAG,IAAI,uCAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/D,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACrD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;qBAAM,IACL,OAAO,UAAU,KAAK,QAAQ;oBAC9B,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAClC,CAAC;oBACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACzB,CAAC;gBAED,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChunkCorrelationPlugin.js","sourceRoot":"","sources":["../../../src/plugins/ChunkCorrelationPlugin.js"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
7
|
+
const StartupChunkDependenciesPlugin = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/runtime/StartupChunkDependenciesPlugin'));
|
|
8
8
|
const DynamicFilesystemChunkLoadingRuntimeModule_1 = __importDefault(require("./DynamicFilesystemChunkLoadingRuntimeModule"));
|
|
9
9
|
const RemotePublicPathRuntimeModule_1 = __importDefault(require("./RemotePublicPathRuntimeModule"));
|
|
10
10
|
class DynamicFilesystemChunkLoadingPlugin {
|
|
@@ -13,10 +13,11 @@ class DynamicFilesystemChunkLoadingPlugin {
|
|
|
13
13
|
this._asyncChunkLoading = this.options.asyncChunkLoading;
|
|
14
14
|
}
|
|
15
15
|
apply(compiler) {
|
|
16
|
+
const { RuntimeGlobals } = compiler.webpack;
|
|
16
17
|
const chunkLoadingValue = this._asyncChunkLoading
|
|
17
18
|
? 'async-node'
|
|
18
19
|
: 'require';
|
|
19
|
-
new
|
|
20
|
+
new StartupChunkDependenciesPlugin({
|
|
20
21
|
chunkLoading: chunkLoadingValue,
|
|
21
22
|
asyncChunkLoading: this._asyncChunkLoading,
|
|
22
23
|
//@ts-ignore
|
|
@@ -34,60 +35,60 @@ class DynamicFilesystemChunkLoadingPlugin {
|
|
|
34
35
|
if (!isEnabledForChunk(chunk)) {
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
|
-
set.add(
|
|
38
|
-
set.add(
|
|
39
|
-
set.add(
|
|
38
|
+
set.add(RuntimeGlobals.moduleFactoriesAddOnly);
|
|
39
|
+
set.add(RuntimeGlobals.hasOwnProperty);
|
|
40
|
+
set.add(RuntimeGlobals.publicPath); // this breaks things
|
|
40
41
|
compilation.addRuntimeModule(chunk, new DynamicFilesystemChunkLoadingRuntimeModule_1.default(set, this.options, {
|
|
41
42
|
webpack: compiler.webpack,
|
|
42
43
|
}));
|
|
43
44
|
};
|
|
44
45
|
compilation.hooks.runtimeRequirementInTree
|
|
45
|
-
.for(
|
|
46
|
+
.for(RuntimeGlobals.ensureChunkHandlers)
|
|
46
47
|
.tap('DynamicFilesystemChunkLoadingPlugin', handler);
|
|
47
48
|
compilation.hooks.runtimeRequirementInTree
|
|
48
|
-
.for(
|
|
49
|
+
.for(RuntimeGlobals.hmrDownloadUpdateHandlers)
|
|
49
50
|
.tap('DynamicFilesystemChunkLoadingPlugin', handler);
|
|
50
51
|
compilation.hooks.runtimeRequirementInTree
|
|
51
|
-
.for(
|
|
52
|
+
.for(RuntimeGlobals.hmrDownloadManifest)
|
|
52
53
|
.tap('DynamicFilesystemChunkLoadingPlugin', handler);
|
|
53
54
|
compilation.hooks.runtimeRequirementInTree
|
|
54
|
-
.for(
|
|
55
|
+
.for(RuntimeGlobals.baseURI)
|
|
55
56
|
.tap('DynamicFilesystemChunkLoadingPlugin', handler);
|
|
56
57
|
compilation.hooks.runtimeRequirementInTree
|
|
57
|
-
.for(
|
|
58
|
+
.for(RuntimeGlobals.externalInstallChunk)
|
|
58
59
|
.tap('DynamicFilesystemChunkLoadingPlugin', handler);
|
|
59
60
|
compilation.hooks.runtimeRequirementInTree
|
|
60
|
-
.for(
|
|
61
|
+
.for(RuntimeGlobals.onChunksLoaded)
|
|
61
62
|
.tap('DynamicFilesystemChunkLoadingPlugin', handler);
|
|
62
63
|
compilation.hooks.runtimeRequirementInTree
|
|
63
|
-
.for(
|
|
64
|
+
.for(RuntimeGlobals.ensureChunkHandlers)
|
|
64
65
|
.tap('DynamicFilesystemChunkLoadingPlugin', (chunk, set) => {
|
|
65
66
|
if (!isEnabledForChunk(chunk)) {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
|
-
set.add(
|
|
69
|
+
set.add(RuntimeGlobals.getChunkScriptFilename);
|
|
69
70
|
});
|
|
70
71
|
compilation.hooks.runtimeRequirementInTree
|
|
71
|
-
.for(
|
|
72
|
+
.for(RuntimeGlobals.hmrDownloadUpdateHandlers)
|
|
72
73
|
.tap('DynamicFilesystemChunkLoadingPlugin', (chunk, set) => {
|
|
73
74
|
if (!isEnabledForChunk(chunk)) {
|
|
74
75
|
return;
|
|
75
76
|
}
|
|
76
|
-
set.add(
|
|
77
|
-
set.add(
|
|
78
|
-
set.add(
|
|
79
|
-
set.add(
|
|
77
|
+
set.add(RuntimeGlobals.getChunkUpdateScriptFilename);
|
|
78
|
+
set.add(RuntimeGlobals.moduleCache);
|
|
79
|
+
set.add(RuntimeGlobals.hmrModuleData);
|
|
80
|
+
set.add(RuntimeGlobals.moduleFactoriesAddOnly);
|
|
80
81
|
});
|
|
81
82
|
compilation.hooks.runtimeRequirementInTree
|
|
82
|
-
.for(
|
|
83
|
+
.for(RuntimeGlobals.hmrDownloadManifest)
|
|
83
84
|
.tap('DynamicFilesystemChunkLoadingPlugin', (chunk, set) => {
|
|
84
85
|
if (!isEnabledForChunk(chunk)) {
|
|
85
86
|
return;
|
|
86
87
|
}
|
|
87
|
-
set.add(
|
|
88
|
+
set.add(RuntimeGlobals.getUpdateManifestFilename);
|
|
88
89
|
});
|
|
89
90
|
compilation.hooks.runtimeRequirementInTree
|
|
90
|
-
.for(
|
|
91
|
+
.for(RuntimeGlobals.publicPath)
|
|
91
92
|
.tap('RuntimePlugin', (chunk, set) => {
|
|
92
93
|
const { outputOptions } = compilation;
|
|
93
94
|
const { publicPath: globalPublicPath, scriptType } = outputOptions;
|
|
@@ -97,7 +98,7 @@ class DynamicFilesystemChunkLoadingPlugin {
|
|
|
97
98
|
: globalPublicPath;
|
|
98
99
|
const module = new RemotePublicPathRuntimeModule_1.default(this.options);
|
|
99
100
|
if (publicPath === 'auto' && scriptType !== 'module') {
|
|
100
|
-
set.add(
|
|
101
|
+
set.add(RuntimeGlobals.global);
|
|
101
102
|
}
|
|
102
103
|
else if (typeof publicPath !== 'string' ||
|
|
103
104
|
/\[(full)?hash\]/.test(publicPath)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommonJsChunkLoadingPlugin.js","sourceRoot":"","sources":["../../../src/plugins/CommonJsChunkLoadingPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Chunk, Compiler } from 'webpack';
|
|
2
|
-
|
|
2
|
+
declare const RuntimeModule: typeof import("webpack").RuntimeModule;
|
|
3
3
|
import { SyncWaterfallHook } from 'tapable';
|
|
4
4
|
interface DynamicFilesystemChunkLoadingRuntimeModuleOptions {
|
|
5
5
|
baseURI: Compiler['options']['output']['publicPath'];
|