@nx/rspack 19.6.0 → 19.7.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.
Files changed (111) hide show
  1. package/executors.json +20 -0
  2. package/migrations.json +17 -0
  3. package/module-federation.d.ts +1 -0
  4. package/module-federation.js +5 -0
  5. package/module-federation.js.map +1 -0
  6. package/package.json +9 -4
  7. package/src/executors/dev-server/dev-server.impl.d.ts +4 -1
  8. package/src/executors/dev-server/dev-server.impl.js +18 -10
  9. package/src/executors/dev-server/dev-server.impl.js.map +1 -1
  10. package/src/executors/dev-server/lib/get-dev-server-config.d.ts +4 -0
  11. package/src/executors/dev-server/lib/get-dev-server-config.js +71 -0
  12. package/src/executors/dev-server/lib/get-dev-server-config.js.map +1 -0
  13. package/src/executors/dev-server/lib/serve-path.d.ts +3 -0
  14. package/src/executors/dev-server/lib/serve-path.js +45 -0
  15. package/src/executors/dev-server/lib/serve-path.js.map +1 -0
  16. package/src/executors/dev-server/schema.d.ts +5 -1
  17. package/src/executors/dev-server/schema.json +30 -2
  18. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +6 -0
  19. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +166 -0
  20. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js.map +1 -0
  21. package/src/executors/module-federation-dev-server/schema.d.ts +18 -0
  22. package/src/executors/module-federation-dev-server/schema.json +100 -0
  23. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +21 -0
  24. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +209 -0
  25. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js.map +1 -0
  26. package/src/executors/module-federation-ssr-dev-server/schema.json +82 -0
  27. package/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +12 -0
  28. package/src/executors/module-federation-static-server/module-federation-static-server.impl.js +252 -0
  29. package/src/executors/module-federation-static-server/module-federation-static-server.impl.js.map +1 -0
  30. package/src/executors/module-federation-static-server/schema.d.ts +3 -0
  31. package/src/executors/module-federation-static-server/schema.json +14 -0
  32. package/src/executors/rspack/rspack.impl.js +3 -3
  33. package/src/executors/rspack/rspack.impl.js.map +1 -1
  34. package/src/executors/rspack/schema.d.ts +10 -1
  35. package/src/executors/rspack/schema.json +61 -7
  36. package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.d.ts +1 -0
  37. package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.js +40 -0
  38. package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.js.map +1 -0
  39. package/src/executors/ssr-dev-server/schema.d.ts +11 -0
  40. package/src/executors/ssr-dev-server/schema.json +39 -0
  41. package/src/executors/ssr-dev-server/ssr-dev-server.impl.d.ts +8 -0
  42. package/src/executors/ssr-dev-server/ssr-dev-server.impl.js +52 -0
  43. package/src/executors/ssr-dev-server/ssr-dev-server.impl.js.map +1 -0
  44. package/src/generators/application/application.js +2 -2
  45. package/src/generators/application/application.js.map +1 -1
  46. package/src/utils/create-compiler.d.ts +3 -1
  47. package/src/utils/create-compiler.js +12 -2
  48. package/src/utils/create-compiler.js.map +1 -1
  49. package/src/utils/module-federation/build-static.remotes.d.ts +4 -0
  50. package/src/utils/module-federation/build-static.remotes.js +73 -0
  51. package/src/utils/module-federation/build-static.remotes.js.map +1 -0
  52. package/src/utils/module-federation/dependencies.d.ts +6 -0
  53. package/src/utils/module-federation/dependencies.js +58 -0
  54. package/src/utils/module-federation/dependencies.js.map +1 -0
  55. package/src/utils/module-federation/get-remotes-for-host.d.ts +16 -0
  56. package/src/utils/module-federation/get-remotes-for-host.js +103 -0
  57. package/src/utils/module-federation/get-remotes-for-host.js.map +1 -0
  58. package/src/utils/module-federation/index.d.ts +6 -0
  59. package/src/utils/module-federation/index.js +10 -0
  60. package/src/utils/module-federation/index.js.map +1 -0
  61. package/src/utils/module-federation/models/index.d.ts +47 -0
  62. package/src/utils/module-federation/models/index.js +3 -0
  63. package/src/utils/module-federation/models/index.js.map +1 -0
  64. package/src/utils/module-federation/package-json.d.ts +8 -0
  65. package/src/utils/module-federation/package-json.js +13 -0
  66. package/src/utils/module-federation/package-json.js.map +1 -0
  67. package/src/utils/module-federation/parse-static-remotes-config.d.ts +13 -0
  68. package/src/utils/module-federation/parse-static-remotes-config.js +35 -0
  69. package/src/utils/module-federation/parse-static-remotes-config.js.map +1 -0
  70. package/src/utils/module-federation/plugins/runtime-library-control.plugin.d.ts +3 -0
  71. package/src/utils/module-federation/plugins/runtime-library-control.plugin.js +55 -0
  72. package/src/utils/module-federation/plugins/runtime-library-control.plugin.js.map +1 -0
  73. package/src/utils/module-federation/public-api.d.ts +8 -0
  74. package/src/utils/module-federation/public-api.js +21 -0
  75. package/src/utils/module-federation/public-api.js.map +1 -0
  76. package/src/utils/module-federation/remotes.d.ts +19 -0
  77. package/src/utils/module-federation/remotes.js +78 -0
  78. package/src/utils/module-federation/remotes.js.map +1 -0
  79. package/src/utils/module-federation/secondary-entry-points.d.ts +12 -0
  80. package/src/utils/module-federation/secondary-entry-points.js +105 -0
  81. package/src/utils/module-federation/secondary-entry-points.js.map +1 -0
  82. package/src/utils/module-federation/share.d.ts +48 -0
  83. package/src/utils/module-federation/share.js +232 -0
  84. package/src/utils/module-federation/share.js.map +1 -0
  85. package/src/utils/module-federation/start-remote-proxies.d.ts +5 -0
  86. package/src/utils/module-federation/start-remote-proxies.js +46 -0
  87. package/src/utils/module-federation/start-remote-proxies.js.map +1 -0
  88. package/src/utils/module-federation/start-ssr-remote-proxies.d.ts +5 -0
  89. package/src/utils/module-federation/start-ssr-remote-proxies.js +60 -0
  90. package/src/utils/module-federation/start-ssr-remote-proxies.js.map +1 -0
  91. package/src/utils/module-federation/typescript.d.ts +4 -0
  92. package/src/utils/module-federation/typescript.js +53 -0
  93. package/src/utils/module-federation/typescript.js.map +1 -0
  94. package/src/utils/module-federation/with-module-federation/package-json.d.ts +8 -0
  95. package/src/utils/module-federation/with-module-federation/package-json.js +13 -0
  96. package/src/utils/module-federation/with-module-federation/package-json.js.map +1 -0
  97. package/src/utils/module-federation/with-module-federation/utils.d.ts +12 -0
  98. package/src/utils/module-federation/with-module-federation/utils.js +78 -0
  99. package/src/utils/module-federation/with-module-federation/utils.js.map +1 -0
  100. package/src/utils/module-federation/with-module-federation/with-module-federation-ssr.d.ts +3 -0
  101. package/src/utils/module-federation/with-module-federation/with-module-federation-ssr.js +42 -0
  102. package/src/utils/module-federation/with-module-federation/with-module-federation-ssr.js.map +1 -0
  103. package/src/utils/module-federation/with-module-federation/with-module-federation.d.ts +8 -0
  104. package/src/utils/module-federation/with-module-federation/with-module-federation.js +52 -0
  105. package/src/utils/module-federation/with-module-federation/with-module-federation.js.map +1 -0
  106. package/src/utils/versions.d.ts +3 -3
  107. package/src/utils/versions.js +3 -3
  108. package/src/utils/with-nx.js +41 -15
  109. package/src/utils/with-nx.js.map +1 -1
  110. package/src/utils/with-web.js +8 -4
  111. package/src/utils/with-web.js.map +1 -1
package/executors.json CHANGED
@@ -10,6 +10,26 @@
10
10
  "implementation": "./src/executors/dev-server/dev-server.impl",
11
11
  "schema": "./src/executors/dev-server/schema.json",
12
12
  "description": "dev-server executor"
13
+ },
14
+ "ssr-dev-server": {
15
+ "implementation": "./src/executors/ssr-dev-server/ssr-dev-server.impl",
16
+ "schema": "./src/executors/ssr-dev-server/schema.json",
17
+ "description": "Serve a SSR application."
18
+ },
19
+ "module-federation-dev-server": {
20
+ "implementation": "./src/executors/module-federation-dev-server/module-federation-dev-server.impl",
21
+ "schema": "./src/executors/module-federation-dev-server/schema.json",
22
+ "description": "Serve a host or remote application."
23
+ },
24
+ "module-federation-ssr-dev-server": {
25
+ "implementation": "./src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl",
26
+ "schema": "./src/executors/module-federation-ssr-dev-server/schema.json",
27
+ "description": "Serve a host application along with it's known remotes."
28
+ },
29
+ "module-federation-static-server": {
30
+ "implementation": "./src/executors/module-federation-static-server/module-federation-static-server.impl",
31
+ "schema": "./src/executors/module-federation-static-server/schema.json",
32
+ "description": "Serve a host and its remotes statically."
13
33
  }
14
34
  }
15
35
  }
package/migrations.json CHANGED
@@ -75,6 +75,23 @@
75
75
  "alwaysAddToPackageJson": false
76
76
  }
77
77
  }
78
+ },
79
+ "19.7.0": {
80
+ "version": "19.7.0-beta.1",
81
+ "packages": {
82
+ "@rspack/core": {
83
+ "version": "^1.0.0",
84
+ "alwaysAddToPackageJson": false
85
+ },
86
+ "@rspack/dev-server": {
87
+ "version": "^1.0.0",
88
+ "alwaysAddToPackageJson": false
89
+ },
90
+ "@rspack/plugin-react-refresh": {
91
+ "version": "^1.0.0",
92
+ "alwaysAddToPackageJson": false
93
+ }
94
+ }
78
95
  }
79
96
  },
80
97
  "version": "0.1"
@@ -0,0 +1 @@
1
+ export * from './src/utils/module-federation/public-api';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./src/utils/module-federation/public-api"), exports);
5
+ //# sourceMappingURL=module-federation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-federation.js","sourceRoot":"","sources":["../../../packages/rspack/module-federation.ts"],"names":[],"mappings":";;;AAAA,mFAAyD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/rspack",
3
- "version": "19.6.0",
3
+ "version": "19.7.1",
4
4
  "type": "commonjs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,10 +28,15 @@
28
28
  "stylus-loader": "^7.1.0",
29
29
  "postcss-loader": "^8.1.1",
30
30
  "@nx/eslint": "^19.5.7",
31
- "@rspack/core": "^0.7.5",
32
- "@rspack/plugin-react-refresh": "^0.7.5",
31
+ "@rspack/core": "^1.0.2",
32
+ "@rspack/plugin-react-refresh": "^1.0.0",
33
33
  "@rspack/plugin-minify": "^0.7.5",
34
- "@nrwl/rspack": "19.6.0"
34
+ "chalk": "~4.1.0",
35
+ "@nrwl/rspack": "19.7.1"
36
+ },
37
+ "peerDependencies": {
38
+ "@module-federation/enhanced": "~0.6.0",
39
+ "@module-federation/node": "~2.5.10"
35
40
  },
36
41
  "nx-migrations": {
37
42
  "migrations": "./migrations.json"
@@ -1,3 +1,6 @@
1
1
  import { ExecutorContext } from '@nx/devkit';
2
2
  import { DevServerExecutorSchema } from './schema';
3
- export default function runExecutor(options: DevServerExecutorSchema, context: ExecutorContext): AsyncGenerator<unknown, void, undefined>;
3
+ export default function runExecutor(options: DevServerExecutorSchema, context: ExecutorContext): AsyncIterableIterator<{
4
+ success: boolean;
5
+ baseUrl?: string;
6
+ }>;
@@ -7,6 +7,7 @@ const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
7
7
  const dev_server_1 = require("@rspack/dev-server");
8
8
  const create_compiler_1 = require("../../utils/create-compiler");
9
9
  const mode_utils_1 = require("../../utils/mode-utils");
10
+ const get_dev_server_config_1 = require("./lib/get-dev-server-config");
10
11
  function runExecutor(options, context) {
11
12
  return tslib_1.__asyncGenerator(this, arguments, function* runExecutor_1() {
12
13
  var _a, _b, _c;
@@ -16,26 +17,33 @@ function runExecutor(options, context) {
16
17
  options.mode = process.env.NODE_ENV;
17
18
  }
18
19
  const buildTarget = (0, devkit_1.parseTargetString)(options.buildTarget, context.projectGraph);
19
- let devServerConfig = {
20
- port: (_c = options.port) !== null && _c !== void 0 ? _c : 4200,
21
- hot: true,
22
- };
23
20
  const buildOptions = (0, devkit_1.readTargetOptions)(buildTarget, context);
21
+ let devServerConfig = (0, get_dev_server_config_1.getDevServerOptions)(context.root, options, buildOptions);
24
22
  const compiler = yield tslib_1.__await((0, create_compiler_1.createCompiler)(Object.assign(Object.assign({}, buildOptions), { devServer: devServerConfig, mode: options.mode }), context));
25
23
  // Use the first one if it's MultiCompiler
26
24
  // https://webpack.js.org/configuration/dev-server/#root:~:text=Be%20aware%20that%20when%20exporting%20multiple%20configurations%20only%20the%20devServer%20options%20for%20the%20first%20configuration%20will%20be%20taken%20into%20account%20and%20used%20for%20all%20the%20configurations%20in%20the%20array.
27
- const firstCompiler = (0, create_compiler_1.isMultiCompiler)(compiler) ? compiler.compilers[0] : compiler;
25
+ const firstCompiler = (0, create_compiler_1.isMultiCompiler)(compiler)
26
+ ? compiler.compilers[0]
27
+ : compiler;
28
28
  devServerConfig = Object.assign(Object.assign(Object.assign({}, devServerConfig), firstCompiler.options.devServer), { port: devServerConfig.port });
29
- yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues((0, async_iterable_1.createAsyncIterable)(({ next }) => {
30
- const server = new dev_server_1.RspackDevServer(Object.assign(Object.assign({}, devServerConfig), { onListening: (server) => {
31
- var _a;
29
+ const baseUrl = `http://localhost:${(_c = options.port) !== null && _c !== void 0 ? _c : 4200}`;
30
+ return yield tslib_1.__await(yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues((0, async_iterable_1.createAsyncIterable)(({ next }) => {
31
+ const server = new dev_server_1.RspackDevServer(Object.assign(Object.assign({}, devServerConfig), { onListening: () => {
32
32
  next({
33
33
  success: true,
34
- baseUrl: `http://localhost:${(_a = options.port) !== null && _a !== void 0 ? _a : 4200}`,
34
+ baseUrl,
35
35
  });
36
36
  } }), compiler);
37
+ server.compiler.hooks.done.tap('NX Rspack Dev Server', (stats) => {
38
+ if (stats.hasErrors()) {
39
+ devkit_1.logger.error(`NX Compilation failed. See above for more details.`);
40
+ }
41
+ else {
42
+ devkit_1.logger.info(`NX Server ready at ${baseUrl}`);
43
+ }
44
+ });
37
45
  server.start();
38
- }))));
46
+ })))));
39
47
  });
40
48
  }
41
49
  //# sourceMappingURL=dev-server.impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server.impl.js","sourceRoot":"","sources":["../../../../../../packages/rspack/src/executors/dev-server/dev-server.impl.ts"],"names":[],"mappings":";;AAYA,8BAmDC;;AA/DD,uCAIoB;AACpB,wEAA0E;AAE1E,mDAAqD;AACrD,iEAA8E;AAC9E,uDAAgD;AAGhD,SAA+B,WAAW,CACxC,OAAgC,EAChC,OAAwB;;;;QAExB,YAAA,OAAO,CAAC,GAAG,EAAC,QAAQ,uCAAR,QAAQ,GAAK,MAAA,OAAO,CAAC,IAAI,mCAAI,aAAa,EAAC;QAEvD,IAAI,IAAA,mBAAM,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,0BAAiB,EACnC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,CACrB,CAAC;QAEF,IAAI,eAAe,GAAc;YAC/B,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI;YAC1B,GAAG,EAAE,IAAI;SACV,CAAC;QAEF,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAM,WAAW,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,sBAAM,IAAA,gCAAc,kCAC9B,YAAY,KAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KACjE,OAAO,CACR,CAAA,CAAC;QAEF,0CAA0C;QAC1C,gTAAgT;QAChT,MAAM,aAAa,GAAG,IAAA,iCAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnF,eAAe,iDACV,eAAe,GACf,aAAa,CAAC,OAAO,CAAC,SAAS,KAClC,IAAI,EAAE,eAAe,CAAC,IAAI,GAC3B,CAAC;QAEF,sBAAA,KAAK,CAAC,CAAC,yBAAA,sBAAA,IAAA,oCAAmB,EAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACtC,MAAM,MAAM,GAAQ,IAAI,4BAAe,iCAEhC,eAAe,KAClB,WAAW,EAAE,CAAC,MAAW,EAAE,EAAE;;oBAC3B,IAAI,CAAC;wBACH,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,oBAAoB,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,EAAE;qBACpD,CAAC,CAAC;gBACL,CAAC,KAGH,QAAQ,CACT,CAAC;YACF,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;IACL,CAAC;CAAA"}
1
+ {"version":3,"file":"dev-server.impl.js","sourceRoot":"","sources":["../../../../../../packages/rspack/src/executors/dev-server/dev-server.impl.ts"],"names":[],"mappings":";;AAeA,8BAgEC;;AA/ED,uCAKoB;AACpB,wEAA0E;AAE1E,mDAAqD;AACrD,iEAA8E;AAC9E,uDAAgD;AAChD,uEAAkE;AAIlE,SAA+B,WAAW,CACxC,OAAgC,EAChC,OAAwB;;;;QAExB,YAAA,OAAO,CAAC,GAAG,EAAC,QAAQ,uCAAR,QAAQ,GAAK,MAAA,OAAO,CAAC,IAAI,mCAAI,aAAa,EAAC;QAEvD,IAAI,IAAA,mBAAM,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,0BAAiB,EACnC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,CACrB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE7D,IAAI,eAAe,GAAc,IAAA,2CAAmB,EAClD,OAAO,CAAC,IAAI,EACZ,OAAO,EACP,YAAY,CACb,CAAC;QAEF,MAAM,QAAQ,GAAG,sBAAM,IAAA,gCAAc,kCAC9B,YAAY,KAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KACjE,OAAO,CACR,CAAA,CAAC;QAEF,0CAA0C;QAC1C,gTAAgT;QAChT,MAAM,aAAa,GAAG,IAAA,iCAAe,EAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,QAAQ,CAAC;QACb,eAAe,iDACV,eAAe,GACf,aAAa,CAAC,OAAO,CAAC,SAAS,KAClC,IAAI,EAAE,eAAe,CAAC,IAAI,GAC3B,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,EAAE,CAAC;QAE3D,6BAAO,sBAAA,KAAK,CAAC,CAAC,yBAAA,sBAAA,IAAA,oCAAmB,EAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,4BAAe,iCAE3B,eAAe,KAClB,WAAW,EAAE,GAAG,EAAE;oBAChB,IAAI,CAAC;wBACH,OAAO,EAAE,IAAI;wBACb,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC,KAGH,QAAQ,CACT,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC/D,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;oBACtB,eAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,eAAM,CAAC,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAA,CAAA,CAAA,EAAC;IACL,CAAC;CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Configuration as RspackDevServerConfiguration } from '@rspack/dev-server';
2
+ import { RspackExecutorSchema } from '../../rspack/schema';
3
+ import { DevServerExecutorSchema } from '../schema';
4
+ export declare function getDevServerOptions(root: string, serveOptions: DevServerExecutorSchema, buildOptions: RspackExecutorSchema): RspackDevServerConfiguration;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDevServerOptions = getDevServerOptions;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const fs_1 = require("fs");
7
+ const path = tslib_1.__importStar(require("path"));
8
+ const serve_path_1 = require("./serve-path");
9
+ function getDevServerOptions(root, serveOptions, buildOptions) {
10
+ const servePath = (0, serve_path_1.buildServePath)(buildOptions);
11
+ let scriptsOptimization;
12
+ let stylesOptimization;
13
+ if (typeof buildOptions.optimization === 'boolean') {
14
+ scriptsOptimization = stylesOptimization = buildOptions.optimization;
15
+ }
16
+ else if (buildOptions.optimization) {
17
+ scriptsOptimization = buildOptions.optimization.scripts;
18
+ stylesOptimization = buildOptions.optimization.styles;
19
+ }
20
+ else {
21
+ scriptsOptimization = stylesOptimization = false;
22
+ }
23
+ const config = {
24
+ host: serveOptions.host,
25
+ port: serveOptions.port,
26
+ headers: { 'Access-Control-Allow-Origin': '*' },
27
+ historyApiFallback: {
28
+ index: buildOptions.index &&
29
+ `${servePath}${path.basename(buildOptions.index)}`,
30
+ disableDotRule: true,
31
+ htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
32
+ },
33
+ onListening(server) {
34
+ var _a;
35
+ const isHttps = server.options.https ||
36
+ ((_a = server.options.server) === null || _a === void 0 ? void 0 : _a.type) === 'https';
37
+ devkit_1.logger.info(`NX Web Development Server is listening at ${isHttps ? 'https' : 'http'}://${server.options.host}:${server.options.port}${(0, serve_path_1.buildServePath)(buildOptions)}`);
38
+ },
39
+ open: false,
40
+ static: false,
41
+ compress: scriptsOptimization || stylesOptimization,
42
+ devMiddleware: {
43
+ publicPath: servePath,
44
+ stats: false,
45
+ },
46
+ client: {
47
+ webSocketURL: serveOptions.publicHost,
48
+ overlay: {
49
+ errors: !(scriptsOptimization || stylesOptimization),
50
+ warnings: false,
51
+ },
52
+ },
53
+ hot: true,
54
+ };
55
+ if (serveOptions.ssl) {
56
+ config.server = {
57
+ type: 'https',
58
+ };
59
+ if (serveOptions.sslKey && serveOptions.sslCert) {
60
+ config.server.options = getSslConfig(root, serveOptions);
61
+ }
62
+ }
63
+ return config;
64
+ }
65
+ function getSslConfig(root, options) {
66
+ return {
67
+ key: (0, fs_1.readFileSync)(path.resolve(root, options.sslKey), 'utf-8'),
68
+ cert: (0, fs_1.readFileSync)(path.resolve(root, options.sslCert), 'utf-8'),
69
+ };
70
+ }
71
+ //# sourceMappingURL=get-dev-server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-dev-server-config.js","sourceRoot":"","sources":["../../../../../../../packages/rspack/src/executors/dev-server/lib/get-dev-server-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RspackExecutorSchema } from '../../rspack/schema';
2
+ export declare function buildServePath(browserOptions: RspackExecutorSchema): string;
3
+ export declare function _findDefaultServePath(baseHref?: string, deployUrl?: string): string | null;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildServePath = buildServePath;
4
+ exports._findDefaultServePath = _findDefaultServePath;
5
+ function buildServePath(browserOptions) {
6
+ let servePath = _findDefaultServePath(browserOptions.baseHref, browserOptions.deployUrl) ||
7
+ '/';
8
+ if (servePath.endsWith('/')) {
9
+ servePath = servePath.slice(0, -1);
10
+ }
11
+ if (!servePath.startsWith('/')) {
12
+ servePath = `/${servePath}`;
13
+ }
14
+ return servePath;
15
+ }
16
+ function _findDefaultServePath(baseHref, deployUrl) {
17
+ if (!baseHref && !deployUrl) {
18
+ return '';
19
+ }
20
+ if (/^(\w+:)?\/\//.test(baseHref || '') ||
21
+ /^(\w+:)?\/\//.test(deployUrl || '')) {
22
+ // If baseHref or deployUrl is absolute, unsupported by nx serve
23
+ return null;
24
+ }
25
+ // normalize baseHref
26
+ // for nx serve the starting base is always `/` so a relative
27
+ // and root relative value are identical
28
+ const baseHrefParts = (baseHref || '')
29
+ .split('/')
30
+ .filter((part) => part !== '');
31
+ if (baseHref && !baseHref.endsWith('/')) {
32
+ baseHrefParts.pop();
33
+ }
34
+ const normalizedBaseHref = baseHrefParts.length === 0 ? '/' : `/${baseHrefParts.join('/')}/`;
35
+ if (deployUrl && deployUrl[0] === '/') {
36
+ if (baseHref && baseHref[0] === '/' && normalizedBaseHref !== deployUrl) {
37
+ // If baseHref and deployUrl are root relative and not equivalent, unsupported by nx serve
38
+ return null;
39
+ }
40
+ return deployUrl;
41
+ }
42
+ // Join together baseHref and deployUrl
43
+ return `${normalizedBaseHref}${deployUrl || ''}`;
44
+ }
45
+ //# sourceMappingURL=serve-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-path.js","sourceRoot":"","sources":["../../../../../../../packages/rspack/src/executors/dev-server/lib/serve-path.ts"],"names":[],"mappings":";;AAEA,wCAYC;AAED,sDAuCC;AArDD,SAAgB,cAAc,CAAC,cAAoC;IACjE,IAAI,SAAS,GACX,qBAAqB,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;QACxE,GAAG,CAAC;IACN,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,qBAAqB,CACnC,QAAiB,EACjB,SAAkB;IAElB,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IACE,cAAc,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EACpC,CAAC;QACD,gEAAgE;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,6DAA6D;IAC7D,wCAAwC;IACxC,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SACnC,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACjC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,aAAa,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,kBAAkB,GACtB,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAEpE,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACxE,0FAA0F;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uCAAuC;IACvC,OAAO,GAAG,kBAAkB,GAAG,SAAS,IAAI,EAAE,EAAE,CAAC;AACnD,CAAC"}
@@ -3,6 +3,10 @@ import type { Mode } from '@rspack/core';
3
3
  export interface DevServerExecutorSchema {
4
4
  buildTarget: string;
5
5
  mode?: Mode;
6
-
6
+ host?: string;
7
7
  port?: number;
8
+ ssl?: boolean;
9
+ sslKey?: string;
10
+ sslCert?: string;
11
+ publicHost?: string;
8
12
  }
@@ -16,8 +16,36 @@
16
16
  "mode": {
17
17
  "type": "string",
18
18
  "description": "Mode to run the server in.",
19
- "enum": ["development", "production", "none"]
19
+ "enum": [
20
+ "development",
21
+ "production",
22
+ "none"
23
+ ]
24
+ },
25
+ "host": {
26
+ "type": "string",
27
+ "description": "Host to listen on.",
28
+ "default": "localhost"
29
+ },
30
+ "ssl": {
31
+ "type": "boolean",
32
+ "description": "Serve using `HTTPS`.",
33
+ "default": false
34
+ },
35
+ "sslKey": {
36
+ "type": "string",
37
+ "description": "SSL key to use for serving `HTTPS`."
38
+ },
39
+ "sslCert": {
40
+ "type": "string",
41
+ "description": "SSL certificate to use for serving `HTTPS`."
42
+ },
43
+ "publicHost": {
44
+ "type": "string",
45
+ "description": "Public URL where the application will be served."
20
46
  }
21
47
  },
22
- "required": ["buildTarget"]
48
+ "required": [
49
+ "buildTarget"
50
+ ]
23
51
  }
@@ -0,0 +1,6 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { ModuleFederationDevServerOptions } from './schema';
3
+ export default function moduleFederationDevServer(options: ModuleFederationDevServerOptions, context: ExecutorContext): AsyncIterableIterator<{
4
+ success: boolean;
5
+ baseUrl?: string;
6
+ }>;
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = moduleFederationDevServer;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
7
+ const file_server_impl_1 = tslib_1.__importDefault(require("@nx/web/src/executors/file-server/file-server.impl"));
8
+ const wait_for_port_open_1 = require("@nx/web/src/utils/wait-for-port-open");
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ const module_federation_1 = require("../../utils/module-federation");
12
+ const build_static_remotes_1 = require("../../utils/module-federation/build-static.remotes");
13
+ const parse_static_remotes_config_1 = require("../../utils/module-federation/parse-static-remotes-config");
14
+ const start_remote_proxies_1 = require("../../utils/module-federation/start-remote-proxies");
15
+ const dev_server_impl_1 = tslib_1.__importDefault(require("../dev-server/dev-server.impl"));
16
+ function getBuildOptions(buildTarget, context) {
17
+ const target = (0, devkit_1.parseTargetString)(buildTarget, context);
18
+ const buildOptions = (0, devkit_1.readTargetOptions)(target, context);
19
+ return Object.assign({}, buildOptions);
20
+ }
21
+ function startStaticRemotesFileServer(staticRemotesConfig, context, options) {
22
+ if (!staticRemotesConfig.remotes ||
23
+ staticRemotesConfig.remotes.length === 0) {
24
+ return;
25
+ }
26
+ let shouldMoveToCommonLocation = false;
27
+ let commonOutputDirectory;
28
+ for (const app of staticRemotesConfig.remotes) {
29
+ const remoteBasePath = staticRemotesConfig.config[app].basePath;
30
+ if (!commonOutputDirectory) {
31
+ commonOutputDirectory = remoteBasePath;
32
+ }
33
+ else if (commonOutputDirectory !== remoteBasePath) {
34
+ shouldMoveToCommonLocation = true;
35
+ break;
36
+ }
37
+ }
38
+ if (shouldMoveToCommonLocation) {
39
+ commonOutputDirectory = (0, path_1.join)(devkit_1.workspaceRoot, 'tmp/static-remotes');
40
+ for (const app of staticRemotesConfig.remotes) {
41
+ const remoteConfig = staticRemotesConfig.config[app];
42
+ (0, fs_1.cpSync)(remoteConfig.outputPath, (0, path_1.join)(commonOutputDirectory, remoteConfig.urlSegment), {
43
+ force: true,
44
+ recursive: true,
45
+ });
46
+ }
47
+ }
48
+ const staticRemotesIter = (0, file_server_impl_1.default)({
49
+ cors: true,
50
+ watch: false,
51
+ staticFilePath: commonOutputDirectory,
52
+ parallel: false,
53
+ spa: false,
54
+ withDeps: false,
55
+ host: options.host,
56
+ port: options.staticRemotesPort,
57
+ ssl: options.ssl,
58
+ sslCert: options.sslCert,
59
+ sslKey: options.sslKey,
60
+ cacheSeconds: -1,
61
+ }, context);
62
+ return staticRemotesIter;
63
+ }
64
+ function startRemotes(remotes_1, context_1, options_1) {
65
+ return tslib_1.__awaiter(this, arguments, void 0, function* (remotes, context, options, target = 'serve') {
66
+ var _a, _b;
67
+ const remoteIters = [];
68
+ for (const app of remotes) {
69
+ const remoteProjectServeTarget = context.projectGraph.nodes[app].data.targets[target];
70
+ const isUsingModuleFederationDevServerExecutor = remoteProjectServeTarget.executor.includes('module-federation-dev-server');
71
+ const configurationOverride = (_b = (_a = options.devRemotes) === null || _a === void 0 ? void 0 : _a.find((r) => typeof r !== 'string' && r.remoteName === app)) === null || _b === void 0 ? void 0 : _b.configuration;
72
+ const defaultOverrides = Object.assign(Object.assign(Object.assign(Object.assign({}, (options.host ? { host: options.host } : {})), (options.ssl ? { ssl: options.ssl } : {})), (options.sslCert ? { sslCert: options.sslCert } : {})), (options.sslKey ? { sslKey: options.sslKey } : {}));
73
+ const overrides = target === 'serve'
74
+ ? Object.assign(Object.assign({ watch: true }, (isUsingModuleFederationDevServerExecutor
75
+ ? { isInitialHost: false }
76
+ : {})), defaultOverrides) : Object.assign({}, defaultOverrides);
77
+ remoteIters.push(yield (0, devkit_1.runExecutor)({
78
+ project: app,
79
+ target,
80
+ configuration: configurationOverride !== null && configurationOverride !== void 0 ? configurationOverride : context.configurationName,
81
+ }, overrides, context));
82
+ }
83
+ return remoteIters;
84
+ });
85
+ }
86
+ function moduleFederationDevServer(options, context) {
87
+ return tslib_1.__asyncGenerator(this, arguments, function* moduleFederationDevServer_1() {
88
+ var _a, _b, _c;
89
+ // Force Node to resolve to look for the nx binary that is inside node_modules
90
+ const nxBin = require.resolve('nx/bin/nx');
91
+ const currIter = options.static
92
+ ? (0, file_server_impl_1.default)(Object.assign(Object.assign({}, options), { parallel: false, withDeps: false, spa: false, cors: true, cacheSeconds: -1 }), context)
93
+ : (0, dev_server_impl_1.default)(options, context);
94
+ const p = context.projectsConfigurations.projects[context.projectName];
95
+ const buildOptions = getBuildOptions(options.buildTarget, context);
96
+ let pathToManifestFile = (0, path_1.join)(context.root, p.sourceRoot, 'assets/module-federation.manifest.json');
97
+ if (options.pathToManifestFile) {
98
+ const userPathToManifestFile = (0, path_1.join)(context.root, options.pathToManifestFile);
99
+ if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
100
+ throw new Error(`The provided Module Federation manifest file path does not exist. Please check the file exists at "${userPathToManifestFile}".`);
101
+ }
102
+ else if ((0, path_1.extname)(options.pathToManifestFile) !== '.json') {
103
+ throw new Error(`The Module Federation manifest file must be a JSON. Please ensure the file at ${userPathToManifestFile} is a JSON.`);
104
+ }
105
+ pathToManifestFile = userPathToManifestFile;
106
+ }
107
+ if (!options.isInitialHost) {
108
+ return yield tslib_1.__await(yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(currIter))));
109
+ }
110
+ const moduleFederationConfig = (0, module_federation_1.getModuleFederationConfig)(buildOptions.tsConfig, context.root, p.root, 'react');
111
+ const remoteNames = (_a = options.devRemotes) === null || _a === void 0 ? void 0 : _a.map((r) => typeof r === 'string' ? r : r.remoteName);
112
+ const remotes = (0, module_federation_1.getRemotes)(remoteNames, options.skipRemotes, moduleFederationConfig, {
113
+ projectName: context.projectName,
114
+ projectGraph: context.projectGraph,
115
+ root: context.root,
116
+ }, pathToManifestFile);
117
+ (_b = options.staticRemotesPort) !== null && _b !== void 0 ? _b : (options.staticRemotesPort = remotes.staticRemotePort);
118
+ // Set NX_MF_DEV_REMOTES for the Nx Runtime Library Control Plugin
119
+ process.env.NX_MF_DEV_REMOTES = JSON.stringify([
120
+ ...((_c = remotes.devRemotes.map((r) => typeof r === 'string' ? r : r.remoteName)) !== null && _c !== void 0 ? _c : []),
121
+ p.name,
122
+ ]);
123
+ const staticRemotesConfig = (0, parse_static_remotes_config_1.parseStaticRemotesConfig)([...remotes.staticRemotes, ...remotes.dynamicRemotes], context);
124
+ const mappedLocationsOfStaticRemotes = yield tslib_1.__await((0, build_static_remotes_1.buildStaticRemotes)(staticRemotesConfig, nxBin, context, options));
125
+ const devRemoteIters = yield tslib_1.__await(startRemotes(remotes.devRemotes, context, options, 'serve'));
126
+ const staticRemotesIter = startStaticRemotesFileServer(staticRemotesConfig, context, options);
127
+ (0, start_remote_proxies_1.startRemoteProxies)(staticRemotesConfig, mappedLocationsOfStaticRemotes, options.ssl
128
+ ? {
129
+ pathToCert: (0, path_1.join)(devkit_1.workspaceRoot, options.sslCert),
130
+ pathToKey: (0, path_1.join)(devkit_1.workspaceRoot, options.sslKey),
131
+ }
132
+ : undefined);
133
+ return yield tslib_1.__await(yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues((0, async_iterable_1.combineAsyncIterables)(currIter, ...devRemoteIters, ...(staticRemotesIter ? [staticRemotesIter] : []), (0, async_iterable_1.createAsyncIterable)((_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ next, done }) {
134
+ var _b;
135
+ if (!options.isInitialHost) {
136
+ done();
137
+ return;
138
+ }
139
+ if (remotes.remotePorts.length === 0) {
140
+ done();
141
+ return;
142
+ }
143
+ try {
144
+ const host = (_b = options.host) !== null && _b !== void 0 ? _b : 'localhost';
145
+ const baseUrl = `http${options.ssl ? 's' : ''}://${host}:${options.port}`;
146
+ const portsToWaitFor = staticRemotesIter
147
+ ? [options.staticRemotesPort, ...remotes.remotePorts]
148
+ : [...remotes.remotePorts];
149
+ yield Promise.all(portsToWaitFor.map((port) => (0, wait_for_port_open_1.waitForPortOpen)(port, {
150
+ retries: 480,
151
+ retryDelay: 2500,
152
+ host: host,
153
+ })));
154
+ devkit_1.logger.info(`NX All remotes started, server ready at ${baseUrl}`);
155
+ next({ success: true, baseUrl: baseUrl });
156
+ }
157
+ catch (err) {
158
+ throw new Error(`Failed to start remotes. Check above for any errors.`);
159
+ }
160
+ finally {
161
+ done();
162
+ }
163
+ })))))));
164
+ });
165
+ }
166
+ //# sourceMappingURL=module-federation-dev-server.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-federation-dev-server.impl.js","sourceRoot":"","sources":["../../../../../../packages/rspack/src/executors/module-federation-dev-server/module-federation-dev-server.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { DevServerExecutorSchema } from '../dev-server/schema';
2
+
3
+ export type ModuleFederationDevServerOptions = DevServerExecutorSchema & {
4
+ // Module Federation Specific Options
5
+ devRemotes?: (
6
+ | string
7
+ | {
8
+ remoteName: string;
9
+ configuration: string;
10
+ }
11
+ )[];
12
+ skipRemotes?: string[];
13
+ static?: boolean;
14
+ isInitialHost?: boolean;
15
+ parallel?: number;
16
+ staticRemotesPort?: number;
17
+ pathToManifestFile?: string;
18
+ };