@module-federation/rspack 0.12.0 → 0.13.1

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.
@@ -113,7 +113,10 @@ var ModuleFederationPlugin = /*#__PURE__*/ function() {
113
113
  var _this = this;
114
114
  var count = 0;
115
115
  compiler.options.plugins.forEach(function(p) {
116
- if (p.name === _this.name) {
116
+ if ((typeof p === "undefined" ? "undefined" : _type_of(p)) !== 'object' || !p) {
117
+ return;
118
+ }
119
+ if (p['name'] === _this.name) {
117
120
  count++;
118
121
  if (count > 1) {
119
122
  throw new Error("Detect duplicate register ".concat(_this.name, ",please ensure ").concat(_this.name, " is singleton!"));
@@ -138,9 +141,7 @@ var ModuleFederationPlugin = /*#__PURE__*/ function() {
138
141
  this._patchChunkSplit(compiler, options.name);
139
142
  }
140
143
  // must before ModuleFederationPlugin
141
- if (options.getPublicPath && options.name) {
142
- new remoteEntryPlugin.RemoteEntryPlugin(options.name, options.getPublicPath).apply(compiler);
143
- }
144
+ new remoteEntryPlugin.RemoteEntryPlugin(options).apply(compiler);
144
145
  if ((_options_experiments = options.experiments) === null || _options_experiments === void 0 ? void 0 : _options_experiments.provideExternalRuntime) {
145
146
  if (options.exposes) {
146
147
  throw new Error('You can only set provideExternalRuntime: true in pure consumer which not expose modules.');
@@ -185,7 +186,7 @@ var ModuleFederationPlugin = /*#__PURE__*/ function() {
185
186
  });
186
187
  if (!disableManifest) {
187
188
  this._statsPlugin = new manifest.StatsPlugin(options, {
188
- pluginVersion: "0.12.0",
189
+ pluginVersion: "0.13.1",
189
190
  bundler: 'rspack'
190
191
  });
191
192
  // @ts-ignore
@@ -111,7 +111,10 @@ var ModuleFederationPlugin = /*#__PURE__*/ function() {
111
111
  var _this = this;
112
112
  var count = 0;
113
113
  compiler.options.plugins.forEach(function(p) {
114
- if (p.name === _this.name) {
114
+ if ((typeof p === "undefined" ? "undefined" : _type_of(p)) !== 'object' || !p) {
115
+ return;
116
+ }
117
+ if (p['name'] === _this.name) {
115
118
  count++;
116
119
  if (count > 1) {
117
120
  throw new Error("Detect duplicate register ".concat(_this.name, ",please ensure ").concat(_this.name, " is singleton!"));
@@ -136,9 +139,7 @@ var ModuleFederationPlugin = /*#__PURE__*/ function() {
136
139
  this._patchChunkSplit(compiler, options.name);
137
140
  }
138
141
  // must before ModuleFederationPlugin
139
- if (options.getPublicPath && options.name) {
140
- new RemoteEntryPlugin(options.name, options.getPublicPath).apply(compiler);
141
- }
142
+ new RemoteEntryPlugin(options).apply(compiler);
142
143
  if ((_options_experiments = options.experiments) === null || _options_experiments === void 0 ? void 0 : _options_experiments.provideExternalRuntime) {
143
144
  if (options.exposes) {
144
145
  throw new Error('You can only set provideExternalRuntime: true in pure consumer which not expose modules.');
@@ -183,7 +184,7 @@ var ModuleFederationPlugin = /*#__PURE__*/ function() {
183
184
  });
184
185
  if (!disableManifest) {
185
186
  this._statsPlugin = new StatsPlugin(options, {
186
- pluginVersion: "0.12.0",
187
+ pluginVersion: "0.13.1",
187
188
  bundler: 'rspack'
188
189
  });
189
190
  // @ts-ignore
@@ -1,6 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var pBtoa = require('btoa');
4
+ var managers = require('@module-federation/managers');
5
+ var sdk = require('@module-federation/sdk');
6
+
7
+ var logger = sdk.createLogger('[ Module Federation Rspack Plugin ]');
4
8
 
5
9
  function _class_call_check(instance, Constructor) {
6
10
  if (!(instance instanceof Constructor)) {
@@ -33,6 +37,7 @@ function _define_property(obj, key, value) {
33
37
  }
34
38
  return obj;
35
39
  }
40
+ // @ts-ignore
36
41
  var charMap = {
37
42
  '<': '\\u003C',
38
43
  '>': '\\u003E',
@@ -53,22 +58,29 @@ function escapeUnsafeChars(str) {
53
58
  });
54
59
  }
55
60
  var RemoteEntryPlugin = /*#__PURE__*/ function() {
56
- function RemoteEntryPlugin(name, getPublicPath) {
61
+ function RemoteEntryPlugin(options) {
57
62
  _class_call_check(this, RemoteEntryPlugin);
58
63
  _define_property(this, "name", 'VmokRemoteEntryPlugin');
59
- _define_property(this, "_name", void 0);
60
- _define_property(this, "_getPublicPath", void 0);
61
- this._name = name;
62
- this._getPublicPath = getPublicPath;
64
+ _define_property(this, "_options", void 0);
65
+ this._options = options;
63
66
  }
64
67
  _create_class(RemoteEntryPlugin, [
65
68
  {
66
69
  key: "apply",
67
70
  value: function apply(compiler) {
68
- var _this = this;
71
+ var _this__options = this._options, name = _this__options.name, getPublicPath = _this__options.getPublicPath;
72
+ if (!getPublicPath || !name) {
73
+ return;
74
+ }
75
+ var containerManager = new managers.ContainerManager();
76
+ containerManager.init(this._options);
77
+ if (!containerManager.enable) {
78
+ logger.warn("Detect you don't set exposes, 'getPublicPath' will not have effect.");
79
+ return;
80
+ }
69
81
  var code;
70
- var sanitizedPublicPath = escapeUnsafeChars(this._getPublicPath);
71
- if (!this._getPublicPath.startsWith('function')) {
82
+ var sanitizedPublicPath = escapeUnsafeChars(getPublicPath);
83
+ if (!getPublicPath.startsWith('function')) {
72
84
  code = "".concat(compiler.webpack.RuntimeGlobals.publicPath, " = new Function(").concat(JSON.stringify(sanitizedPublicPath), ")()");
73
85
  } else {
74
86
  code = "(".concat(sanitizedPublicPath, "())");
@@ -77,7 +89,7 @@ var RemoteEntryPlugin = /*#__PURE__*/ function() {
77
89
  var dataUrl = "data:text/javascript;base64,".concat(base64Code);
78
90
  compiler.hooks.afterPlugins.tap('VmokRemoteEntryPlugin', function() {
79
91
  new compiler.webpack.EntryPlugin(compiler.context, dataUrl, {
80
- name: _this._name
92
+ name: name
81
93
  }).apply(compiler);
82
94
  });
83
95
  }
@@ -1,4 +1,8 @@
1
1
  import pBtoa from 'btoa';
2
+ import { ContainerManager } from '@module-federation/managers';
3
+ import { createLogger } from '@module-federation/sdk';
4
+
5
+ var logger = createLogger('[ Module Federation Rspack Plugin ]');
2
6
 
3
7
  function _class_call_check(instance, Constructor) {
4
8
  if (!(instance instanceof Constructor)) {
@@ -31,6 +35,7 @@ function _define_property(obj, key, value) {
31
35
  }
32
36
  return obj;
33
37
  }
38
+ // @ts-ignore
34
39
  var charMap = {
35
40
  '<': '\\u003C',
36
41
  '>': '\\u003E',
@@ -51,22 +56,29 @@ function escapeUnsafeChars(str) {
51
56
  });
52
57
  }
53
58
  var RemoteEntryPlugin = /*#__PURE__*/ function() {
54
- function RemoteEntryPlugin(name, getPublicPath) {
59
+ function RemoteEntryPlugin(options) {
55
60
  _class_call_check(this, RemoteEntryPlugin);
56
61
  _define_property(this, "name", 'VmokRemoteEntryPlugin');
57
- _define_property(this, "_name", void 0);
58
- _define_property(this, "_getPublicPath", void 0);
59
- this._name = name;
60
- this._getPublicPath = getPublicPath;
62
+ _define_property(this, "_options", void 0);
63
+ this._options = options;
61
64
  }
62
65
  _create_class(RemoteEntryPlugin, [
63
66
  {
64
67
  key: "apply",
65
68
  value: function apply(compiler) {
66
- var _this = this;
69
+ var _this__options = this._options, name = _this__options.name, getPublicPath = _this__options.getPublicPath;
70
+ if (!getPublicPath || !name) {
71
+ return;
72
+ }
73
+ var containerManager = new ContainerManager();
74
+ containerManager.init(this._options);
75
+ if (!containerManager.enable) {
76
+ logger.warn("Detect you don't set exposes, 'getPublicPath' will not have effect.");
77
+ return;
78
+ }
67
79
  var code;
68
- var sanitizedPublicPath = escapeUnsafeChars(this._getPublicPath);
69
- if (!this._getPublicPath.startsWith('function')) {
80
+ var sanitizedPublicPath = escapeUnsafeChars(getPublicPath);
81
+ if (!getPublicPath.startsWith('function')) {
70
82
  code = "".concat(compiler.webpack.RuntimeGlobals.publicPath, " = new Function(").concat(JSON.stringify(sanitizedPublicPath), ")()");
71
83
  } else {
72
84
  code = "(".concat(sanitizedPublicPath, "())");
@@ -75,7 +87,7 @@ var RemoteEntryPlugin = /*#__PURE__*/ function() {
75
87
  var dataUrl = "data:text/javascript;base64,".concat(base64Code);
76
88
  compiler.hooks.afterPlugins.tap('VmokRemoteEntryPlugin', function() {
77
89
  new compiler.webpack.EntryPlugin(compiler.context, dataUrl, {
78
- name: _this._name
90
+ name: name
79
91
  }).apply(compiler);
80
92
  });
81
93
  }
@@ -1,8 +1,8 @@
1
1
  import type { Compiler, RspackPluginInstance } from '@rspack/core';
2
+ import type { moduleFederationPlugin } from '@module-federation/sdk';
2
3
  export declare class RemoteEntryPlugin implements RspackPluginInstance {
3
4
  readonly name = "VmokRemoteEntryPlugin";
4
- private _name;
5
- private _getPublicPath;
6
- constructor(name: string, getPublicPath: string);
5
+ _options: moduleFederationPlugin.ModuleFederationPluginOptions;
6
+ constructor(options: moduleFederationPlugin.ModuleFederationPluginOptions);
7
7
  apply(compiler: Compiler): void;
8
8
  }
@@ -0,0 +1,2 @@
1
+ declare const logger: import("@module-federation/sdk").Logger;
2
+ export default logger;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/rspack",
3
- "version": "0.12.0",
3
+ "version": "0.13.1",
4
4
  "license": "MIT",
5
5
  "keywords": [
6
6
  "Module Federation",
@@ -25,13 +25,13 @@
25
25
  "types": "./dist/index.cjs.d.ts",
26
26
  "dependencies": {
27
27
  "btoa": "1.2.1",
28
- "@module-federation/bridge-react-webpack-plugin": "0.12.0",
29
- "@module-federation/dts-plugin": "0.12.0",
30
- "@module-federation/managers": "0.12.0",
31
- "@module-federation/manifest": "0.12.0",
32
- "@module-federation/runtime-tools": "0.12.0",
33
- "@module-federation/inject-external-runtime-core-plugin": "0.12.0",
34
- "@module-federation/sdk": "0.12.0"
28
+ "@module-federation/bridge-react-webpack-plugin": "0.13.1",
29
+ "@module-federation/dts-plugin": "0.13.1",
30
+ "@module-federation/managers": "0.13.1",
31
+ "@module-federation/manifest": "0.13.1",
32
+ "@module-federation/runtime-tools": "0.13.1",
33
+ "@module-federation/inject-external-runtime-core-plugin": "0.13.1",
34
+ "@module-federation/sdk": "0.13.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@rspack/core": "^1.0.2"