@module-federation/rsbuild-plugin 0.0.0-next-20241010040057 → 0.0.0-next-20241014092946

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/README.md CHANGED
@@ -1,7 +1,17 @@
1
- # Example
1
+ # @module-federation/rsbuild-plugin
2
+
3
+ ## Example
4
+
5
+ ```
6
+ npm install @module-federation/rsbuild-plugin -D
7
+ ```
2
8
 
3
- ### Rsbuild App
4
9
  ```
10
+ npm install @module-federation/enhanced
11
+ ```
12
+
13
+ ### Rsbuild App
14
+ ``` js
5
15
  import { pluginModuleFederation } from '@module-federation/rsbuild-plugin';
6
16
  import { defineConfig } from '@rsbuild/core';
7
17
  import { pluginReact } from '@rsbuild/plugin-react';
@@ -24,7 +34,7 @@ export default defineConfig({
24
34
  ```
25
35
 
26
36
  ### Rslib Module
27
- ```
37
+ ``` js
28
38
  import { pluginModuleFederation } from '@module-federation/rsbuild-plugin';
29
39
  import { defineConfig } from '@rslib/core';
30
40
 
@@ -59,5 +69,4 @@ export default defineConfig({
59
69
  },
60
70
  ],
61
71
  });
62
-
63
72
  ```
package/dist/index.cjs.js CHANGED
@@ -2,21 +2,13 @@
2
2
 
3
3
  var enhanced = require('@module-federation/enhanced');
4
4
  var rspack = require('@module-federation/enhanced/rspack');
5
+ var sdk = require('@module-federation/sdk');
6
+ var util = require('util');
5
7
 
6
- // RegExp for version string
7
- var VERSION_PATTERN_REGEXP = /^([\d^=v<>~]|[*xX]$)/;
8
- /**
9
- * @param {string} str maybe required version
10
- * @returns {boolean} true, if it looks like a version
11
- */ function isRequiredVersion(str) {
12
- return VERSION_PATTERN_REGEXP.test(str);
13
- }
14
8
  function isRegExp(target) {
15
- return Object.prototype.toString.call(target) === '[object RegExp]';
9
+ return util.types.isRegExp(target);
16
10
  }
17
11
 
18
- var DEFAULT_ASSET_PREFIX = '/';
19
-
20
12
  var name = "@module-federation/rsbuild-plugin";
21
13
  var version = "0.0.1";
22
14
  var description = "Module Federation plugin for Rsbuild";
@@ -27,7 +19,7 @@ var bugs = {
27
19
  var repository = {
28
20
  type: "git",
29
21
  url: "https://github.com/module-federation/core",
30
- directory: "packages/plugin-federation"
22
+ directory: "packages/rsbuild-plugin"
31
23
  };
32
24
  var license = "MIT";
33
25
  var exports$1 = {
@@ -35,11 +27,6 @@ var exports$1 = {
35
27
  "import": "./dist/index.esm.js",
36
28
  require: "./dist/index.cjs.js",
37
29
  types: "./dist/index.cjs.d.ts"
38
- },
39
- "./runtime": {
40
- "import": "./dist/runtime.esm.js",
41
- require: "./dist/runtime.cjs.js",
42
- types: "./dist/runtime.cjs.d.ts"
43
30
  }
44
31
  };
45
32
  var main = "./dist/index.cjs.js";
@@ -48,9 +35,6 @@ var typesVersions = {
48
35
  "*": {
49
36
  ".": [
50
37
  "./dist/index.cjs.d.ts"
51
- ],
52
- runtime: [
53
- "./dist/runtime.cjs.d.ts"
54
38
  ]
55
39
  }
56
40
  };
@@ -58,14 +42,14 @@ var files = [
58
42
  "dist"
59
43
  ];
60
44
  var dependencies = {
61
- "@module-federation/enhanced": "workspace:*",
62
45
  "@module-federation/sdk": "workspace:*"
63
46
  };
64
47
  var devDependencies = {
65
- "@rsbuild/core": "1.0.7"
48
+ "@rsbuild/core": "1.x"
66
49
  };
67
50
  var peerDependencies = {
68
- "@rsbuild/core": "1.0.7"
51
+ "@rsbuild/core": "1.x",
52
+ "@module-federation/enhanced": "workspace:*"
69
53
  };
70
54
  var engines = {
71
55
  node: ">=16.0.0"
@@ -298,7 +282,7 @@ var pluginModuleFederation = function(moduleFederationOptions) {
298
282
  setup: function(api) {
299
283
  var sharedOptions = enhanced.parseOptions(moduleFederationOptions.shared || [], function(item, key) {
300
284
  if (typeof item !== 'string') throw new Error('Unexpected array in shared');
301
- var config = item === key || !isRequiredVersion(item) ? {
285
+ var config = item === key || !sdk.isRequiredVersion(item) ? {
302
286
  import: item
303
287
  } : {
304
288
  import: key,
@@ -314,6 +298,8 @@ var pluginModuleFederation = function(moduleFederationOptions) {
314
298
  });
315
299
  api.modifyRsbuildConfig(function(config) {
316
300
  var _config_server, _config_dev_client, _config_dev;
301
+ // If this is a provider app, Rsbuild should send the ws request to the provider's dev server.
302
+ // This allows the provider to do HMR when the provider module is loaded in the consumer's page.
317
303
  if (moduleFederationOptions.exposes && ((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.port) && !((_config_dev = config.dev) === null || _config_dev === void 0 ? void 0 : (_config_dev_client = _config_dev.client) === null || _config_dev_client === void 0 ? void 0 : _config_dev_client.port)) {
318
304
  var _config, _config_dev1;
319
305
  (_config = config).dev || (_config.dev = {});
@@ -377,9 +363,6 @@ var pluginModuleFederation = function(moduleFederationOptions) {
377
363
  });
378
364
  }
379
365
  var mfConfig = {
380
- dev: {
381
- assetPrefix: config.dev.assetPrefix === DEFAULT_ASSET_PREFIX ? true : config.dev.assetPrefix
382
- },
383
366
  tools: {
384
367
  rspack: {
385
368
  output: {
@@ -392,6 +375,7 @@ var pluginModuleFederation = function(moduleFederationOptions) {
392
375
  });
393
376
  api.modifyBundlerChain(/*#__PURE__*/ function() {
394
377
  var _ref = _async_to_generator(function(chain) {
378
+ var publicPath;
395
379
  return _ts_generator(this, function(_state) {
396
380
  chain.plugin('module-federation').use(rspack.ModuleFederationPlugin, [
397
381
  moduleFederationOptions
@@ -400,6 +384,11 @@ var pluginModuleFederation = function(moduleFederationOptions) {
400
384
  if (!chain.output.get('uniqueName')) {
401
385
  chain.output.set('uniqueName', moduleFederationOptions.name);
402
386
  }
387
+ publicPath = chain.output.get('publicPath');
388
+ // set the default publicPath to 'auto' to make MF work
389
+ if (publicPath === '/') {
390
+ chain.output.set('publicPath', 'auto');
391
+ }
403
392
  return [
404
393
  2
405
394
  ];
package/dist/index.esm.js CHANGED
@@ -1,20 +1,12 @@
1
1
  import { parseOptions } from '@module-federation/enhanced';
2
2
  import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack';
3
+ import { isRequiredVersion } from '@module-federation/sdk';
4
+ import util from 'util';
3
5
 
4
- // RegExp for version string
5
- var VERSION_PATTERN_REGEXP = /^([\d^=v<>~]|[*xX]$)/;
6
- /**
7
- * @param {string} str maybe required version
8
- * @returns {boolean} true, if it looks like a version
9
- */ function isRequiredVersion(str) {
10
- return VERSION_PATTERN_REGEXP.test(str);
11
- }
12
6
  function isRegExp(target) {
13
- return Object.prototype.toString.call(target) === '[object RegExp]';
7
+ return util.types.isRegExp(target);
14
8
  }
15
9
 
16
- var DEFAULT_ASSET_PREFIX = '/';
17
-
18
10
  var name = "@module-federation/rsbuild-plugin";
19
11
  var version = "0.0.1";
20
12
  var description = "Module Federation plugin for Rsbuild";
@@ -25,7 +17,7 @@ var bugs = {
25
17
  var repository = {
26
18
  type: "git",
27
19
  url: "https://github.com/module-federation/core",
28
- directory: "packages/plugin-federation"
20
+ directory: "packages/rsbuild-plugin"
29
21
  };
30
22
  var license = "MIT";
31
23
  var exports = {
@@ -33,11 +25,6 @@ var exports = {
33
25
  "import": "./dist/index.esm.js",
34
26
  require: "./dist/index.cjs.js",
35
27
  types: "./dist/index.cjs.d.ts"
36
- },
37
- "./runtime": {
38
- "import": "./dist/runtime.esm.js",
39
- require: "./dist/runtime.cjs.js",
40
- types: "./dist/runtime.cjs.d.ts"
41
28
  }
42
29
  };
43
30
  var main = "./dist/index.cjs.js";
@@ -46,9 +33,6 @@ var typesVersions = {
46
33
  "*": {
47
34
  ".": [
48
35
  "./dist/index.cjs.d.ts"
49
- ],
50
- runtime: [
51
- "./dist/runtime.cjs.d.ts"
52
36
  ]
53
37
  }
54
38
  };
@@ -56,14 +40,14 @@ var files = [
56
40
  "dist"
57
41
  ];
58
42
  var dependencies = {
59
- "@module-federation/enhanced": "workspace:*",
60
43
  "@module-federation/sdk": "workspace:*"
61
44
  };
62
45
  var devDependencies = {
63
- "@rsbuild/core": "1.0.7"
46
+ "@rsbuild/core": "1.x"
64
47
  };
65
48
  var peerDependencies = {
66
- "@rsbuild/core": "1.0.7"
49
+ "@rsbuild/core": "1.x",
50
+ "@module-federation/enhanced": "workspace:*"
67
51
  };
68
52
  var engines = {
69
53
  node: ">=16.0.0"
@@ -312,6 +296,8 @@ var pluginModuleFederation = function(moduleFederationOptions) {
312
296
  });
313
297
  api.modifyRsbuildConfig(function(config) {
314
298
  var _config_server, _config_dev_client, _config_dev;
299
+ // If this is a provider app, Rsbuild should send the ws request to the provider's dev server.
300
+ // This allows the provider to do HMR when the provider module is loaded in the consumer's page.
315
301
  if (moduleFederationOptions.exposes && ((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.port) && !((_config_dev = config.dev) === null || _config_dev === void 0 ? void 0 : (_config_dev_client = _config_dev.client) === null || _config_dev_client === void 0 ? void 0 : _config_dev_client.port)) {
316
302
  var _config, _config_dev1;
317
303
  (_config = config).dev || (_config.dev = {});
@@ -375,9 +361,6 @@ var pluginModuleFederation = function(moduleFederationOptions) {
375
361
  });
376
362
  }
377
363
  var mfConfig = {
378
- dev: {
379
- assetPrefix: config.dev.assetPrefix === DEFAULT_ASSET_PREFIX ? true : config.dev.assetPrefix
380
- },
381
364
  tools: {
382
365
  rspack: {
383
366
  output: {
@@ -390,6 +373,7 @@ var pluginModuleFederation = function(moduleFederationOptions) {
390
373
  });
391
374
  api.modifyBundlerChain(/*#__PURE__*/ function() {
392
375
  var _ref = _async_to_generator(function(chain) {
376
+ var publicPath;
393
377
  return _ts_generator(this, function(_state) {
394
378
  chain.plugin('module-federation').use(ModuleFederationPlugin, [
395
379
  moduleFederationOptions
@@ -398,6 +382,11 @@ var pluginModuleFederation = function(moduleFederationOptions) {
398
382
  if (!chain.output.get('uniqueName')) {
399
383
  chain.output.set('uniqueName', moduleFederationOptions.name);
400
384
  }
385
+ publicPath = chain.output.get('publicPath');
386
+ // set the default publicPath to 'auto' to make MF work
387
+ if (publicPath === '/') {
388
+ chain.output.set('publicPath', 'auto');
389
+ }
401
390
  return [
402
391
  2
403
392
  ];
package/dist/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/module-federation/core",
12
- "directory": "packages/plugin-federation"
12
+ "directory": "packages/rsbuild-plugin"
13
13
  },
14
14
  "license": "MIT",
15
15
  "exports": {
@@ -17,11 +17,6 @@
17
17
  "import": "./dist/index.esm.js",
18
18
  "require": "./dist/index.cjs.js",
19
19
  "types": "./dist/index.cjs.d.ts"
20
- },
21
- "./runtime": {
22
- "import": "./dist/runtime.esm.js",
23
- "require": "./dist/runtime.cjs.js",
24
- "types": "./dist/runtime.cjs.d.ts"
25
20
  }
26
21
  },
27
22
  "main": "./index.cjs.js",
@@ -30,9 +25,6 @@
30
25
  "*": {
31
26
  ".": [
32
27
  "./dist/index.cjs.d.ts"
33
- ],
34
- "runtime": [
35
- "./dist/runtime.cjs.d.ts"
36
28
  ]
37
29
  }
38
30
  },
@@ -40,14 +32,14 @@
40
32
  "dist"
41
33
  ],
42
34
  "dependencies": {
43
- "@module-federation/enhanced": "workspace:*",
44
35
  "@module-federation/sdk": "workspace:*"
45
36
  },
46
37
  "devDependencies": {
47
- "@rsbuild/core": "1.0.7"
38
+ "@rsbuild/core": "1.x"
48
39
  },
49
40
  "peerDependencies": {
50
- "@rsbuild/core": "1.0.7"
41
+ "@rsbuild/core": "1.x",
42
+ "@module-federation/enhanced": "workspace:*"
51
43
  },
52
44
  "engines": {
53
45
  "node": ">=16.0.0"
@@ -1,2 +1 @@
1
- export declare function isRequiredVersion(str: string): boolean;
2
- export declare function isRegExp(target: any): boolean;
1
+ export declare function isRegExp(target: any): target is RegExp;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/rsbuild-plugin",
3
- "version": "0.0.0-next-20241010040057",
3
+ "version": "0.0.0-next-20241014092946",
4
4
  "description": "Module Federation plugin for Rsbuild",
5
5
  "homepage": "https://module-federation.io",
6
6
  "bugs": {
@@ -9,7 +9,7 @@
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/module-federation/core",
12
- "directory": "packages/plugin-federation"
12
+ "directory": "packages/rsbuild-plugin"
13
13
  },
14
14
  "license": "MIT",
15
15
  "exports": {
@@ -17,11 +17,6 @@
17
17
  "import": "./dist/index.esm.js",
18
18
  "require": "./dist/index.cjs.js",
19
19
  "types": "./dist/index.cjs.d.ts"
20
- },
21
- "./runtime": {
22
- "import": "./dist/runtime.esm.js",
23
- "require": "./dist/runtime.cjs.js",
24
- "types": "./dist/runtime.cjs.d.ts"
25
20
  }
26
21
  },
27
22
  "main": "./dist/index.cjs.js",
@@ -30,9 +25,6 @@
30
25
  "*": {
31
26
  ".": [
32
27
  "./dist/index.cjs.d.ts"
33
- ],
34
- "runtime": [
35
- "./dist/runtime.cjs.d.ts"
36
28
  ]
37
29
  }
38
30
  },
@@ -40,14 +32,14 @@
40
32
  "dist"
41
33
  ],
42
34
  "dependencies": {
43
- "@module-federation/enhanced": "0.0.0-next-20241010040057",
44
- "@module-federation/sdk": "0.0.0-next-20241010040057"
35
+ "@module-federation/sdk": "0.0.0-next-20241014092946"
45
36
  },
46
37
  "devDependencies": {
47
- "@rsbuild/core": "1.0.7"
38
+ "@rsbuild/core": "1.x"
48
39
  },
49
40
  "peerDependencies": {
50
- "@rsbuild/core": "1.0.7"
41
+ "@rsbuild/core": "1.x",
42
+ "@module-federation/enhanced": "0.0.0-next-20241014092946"
51
43
  },
52
44
  "engines": {
53
45
  "node": ">=16.0.0"
@@ -1 +0,0 @@
1
- export * from "./src/runtime/index";
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- var runtime = require('@module-federation/enhanced/runtime');
4
-
5
-
6
-
7
- Object.keys(runtime).forEach(function (k) {
8
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
9
- enumerable: true,
10
- get: function () { return runtime[k]; }
11
- });
12
- });
@@ -1 +0,0 @@
1
- export * from "./src/runtime/index";
@@ -1 +0,0 @@
1
- export * from '@module-federation/enhanced/runtime';
@@ -1 +0,0 @@
1
- export * from '@module-federation/enhanced/runtime';
@@ -1 +0,0 @@
1
- export declare const DEFAULT_ASSET_PREFIX = "/";