@module-federation/node 0.12.0 → 0.12.2
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.12.2](https://github.com/module-federation/nextjs-mf/compare/node-0.12.1...node-0.12.2) (2023-03-24)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* Medusa hot reloading ([#685](https://github.com/module-federation/nextjs-mf/issues/685)) ([6f14306](https://github.com/module-federation/nextjs-mf/commit/6f143068252eefec7a717ea0b8fef51a709ba539))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [0.12.1](https://github.com/module-federation/nextjs-mf/compare/node-0.12.0...node-0.12.1) (2023-03-24)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* enable chunk hashing all the time ([#669](https://github.com/module-federation/nextjs-mf/issues/669)) ([7417bc2](https://github.com/module-federation/nextjs-mf/commit/7417bc2acead56aa066a6b14ddb57a2474ea72e0))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
5
23
|
# [0.12.0](https://github.com/module-federation/nextjs-mf/compare/node-0.11.1...node-0.12.0) (2023-03-14)
|
|
6
24
|
|
|
7
25
|
### Dependency Updates
|
package/README.md
CHANGED
|
@@ -83,10 +83,7 @@ The `NodeFederationPlugin` follows the same API as the [Module Federation Plugin
|
|
|
83
83
|
An example configuration is presented below:
|
|
84
84
|
|
|
85
85
|
```js
|
|
86
|
-
const {
|
|
87
|
-
NodeFederationPlugin,
|
|
88
|
-
StreamingTargetPlugin,
|
|
89
|
-
} = require('@module-federation/node');
|
|
86
|
+
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
|
|
90
87
|
|
|
91
88
|
const config = {
|
|
92
89
|
target: isServer ? false : 'web',
|
|
@@ -141,9 +138,7 @@ Express has its own route stack, so reloading require cache will not be enough t
|
|
|
141
138
|
const app = express();
|
|
142
139
|
|
|
143
140
|
global.clearRoutes = () => {
|
|
144
|
-
app._router.stack = app._router.stack.filter(
|
|
145
|
-
(k) => !(k && k.route && k.route.path)
|
|
146
|
-
);
|
|
141
|
+
app._router.stack = app._router.stack.filter((k) => !(k && k.route && k.route.path));
|
|
147
142
|
};
|
|
148
143
|
|
|
149
144
|
// in some other file (within the scope of webpack build)
|
package/package.json
CHANGED
|
@@ -159,6 +159,12 @@ class NodeFederationPlugin {
|
|
|
159
159
|
...this._options,
|
|
160
160
|
remotes: (0, exports.parseRemotes)(this._options.remotes || {}),
|
|
161
161
|
};
|
|
162
|
+
const chunkFileName = compiler.options?.output?.chunkFilename;
|
|
163
|
+
if (typeof chunkFileName === 'string' &&
|
|
164
|
+
!chunkFileName.includes('[hash]') &&
|
|
165
|
+
!chunkFileName.includes('[contenthash]')) {
|
|
166
|
+
compiler.options.output.chunkFilename = chunkFileName.replace('.js', '.[contenthash].js');
|
|
167
|
+
}
|
|
162
168
|
new (this.context.ModuleFederationPlugin ||
|
|
163
169
|
(webpack && webpack.container.ModuleFederationPlugin) ||
|
|
164
170
|
require('webpack/lib/container/ModuleFederationPlugin'))(pluginOptions).apply(compiler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFederationPlugin.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/NodeFederationPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NodeFederationPlugin.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/NodeFederationPlugin.ts"],"names":[],"mappings":"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"}
|
package/src/utils/hot-reload.js
CHANGED
|
@@ -4,6 +4,29 @@ exports.revalidate = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const hashmap = {};
|
|
6
6
|
const crypto_1 = tslib_1.__importDefault(require("crypto"));
|
|
7
|
+
const requireCacheRegex = /(remote|runtime|server|hot-reload|react-loadable-manifest)/;
|
|
8
|
+
const performReload = (shouldReload) => {
|
|
9
|
+
if (!shouldReload) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
let req;
|
|
13
|
+
if (typeof __non_webpack_require__ === 'undefined') {
|
|
14
|
+
req = require;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
req = __non_webpack_require__;
|
|
18
|
+
}
|
|
19
|
+
global.__remote_scope__ = {
|
|
20
|
+
_config: {},
|
|
21
|
+
_medusa: {}
|
|
22
|
+
};
|
|
23
|
+
Object.keys(req.cache).forEach((key) => {
|
|
24
|
+
if (requireCacheRegex.test(key)) {
|
|
25
|
+
delete req.cache[key];
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return true;
|
|
29
|
+
};
|
|
7
30
|
/*
|
|
8
31
|
This code is doing two things First it checks if there are any fake remotes in the
|
|
9
32
|
global scope If so then we need to reload the server because a remote has changed
|
|
@@ -19,6 +42,20 @@ const revalidate = () => {
|
|
|
19
42
|
if (remoteScope[property].fake) {
|
|
20
43
|
console.log('unreachable remote found', property, 'hot reloading to refetch');
|
|
21
44
|
res(true);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const fetchModule = getFetchModule();
|
|
49
|
+
if (remoteScope._medusa) {
|
|
50
|
+
for (const property in remoteScope._medusa) {
|
|
51
|
+
fetchModule(property).then((res) => res.json()).then((medusaResponse) => {
|
|
52
|
+
//@ts-ignore
|
|
53
|
+
if (medusaResponse.version !== remoteScope._medusa[property].version) {
|
|
54
|
+
console.log('medusa config changed', property, 'hot reloading to refetch');
|
|
55
|
+
performReload(true);
|
|
56
|
+
return res(true);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
22
59
|
}
|
|
23
60
|
}
|
|
24
61
|
for (const property in remoteScope._config) {
|
|
@@ -35,7 +72,6 @@ const revalidate = () => {
|
|
|
35
72
|
}
|
|
36
73
|
const name = property;
|
|
37
74
|
const url = remote;
|
|
38
|
-
const fetchModule = getFetchModule();
|
|
39
75
|
const fetcher = fetchModule(url)
|
|
40
76
|
.then((re) => {
|
|
41
77
|
if (!re.ok) {
|
|
@@ -66,29 +102,7 @@ const revalidate = () => {
|
|
|
66
102
|
}
|
|
67
103
|
Promise.all(fetches).then(() => res(false));
|
|
68
104
|
}).then((shouldReload) => {
|
|
69
|
-
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
let req;
|
|
73
|
-
if (typeof __non_webpack_require__ === 'undefined') {
|
|
74
|
-
req = require;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
req = __non_webpack_require__;
|
|
78
|
-
}
|
|
79
|
-
global.__remote_scope__ = {
|
|
80
|
-
_config: {},
|
|
81
|
-
};
|
|
82
|
-
Object.keys(req.cache).forEach((k) => {
|
|
83
|
-
if (k.includes('remote') ||
|
|
84
|
-
k.includes('runtime') ||
|
|
85
|
-
k.includes('server') ||
|
|
86
|
-
k.includes('hot-reload') ||
|
|
87
|
-
k.includes('react-loadable-manifest')) {
|
|
88
|
-
delete req.cache[k];
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return true;
|
|
105
|
+
return performReload(shouldReload);
|
|
92
106
|
});
|
|
93
107
|
}
|
|
94
108
|
return Promise.resolve(false);
|
|
@@ -105,6 +119,7 @@ function getFetchModule() {
|
|
|
105
119
|
if (loadedModule) {
|
|
106
120
|
return loadedModule;
|
|
107
121
|
}
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
108
123
|
const nodeFetch = require('node-fetch');
|
|
109
124
|
return nodeFetch.default || nodeFetch;
|
|
110
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hot-reload.js","sourceRoot":"","sources":["../../../../../packages/node/src/utils/hot-reload.ts"],"names":[],"mappings":";;;;AAAA,MAAM,OAAO,GAAG,EAA4B,CAAC;AAC7C,4DAA4B;
|
|
1
|
+
{"version":3,"file":"hot-reload.js","sourceRoot":"","sources":["../../../../../packages/node/src/utils/hot-reload.ts"],"names":[],"mappings":"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"}
|