@nx/react 24.0.0-beta.2 → 24.0.0-beta.4

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 (209) hide show
  1. package/dist/index.d.ts +0 -2
  2. package/dist/index.js +1 -5
  3. package/dist/internal.d.ts +1 -0
  4. package/dist/internal.js +3 -1
  5. package/dist/plugins/component-testing/index.js +92 -33
  6. package/dist/plugins/storybook/index.js +18 -18
  7. package/dist/plugins/with-react.d.ts +3 -7
  8. package/dist/plugins/with-react.js +5 -19
  9. package/dist/src/generators/application/application.js +1 -36
  10. package/dist/src/generators/application/files/base-rspack/rspack.config.js__tmpl__ +1 -24
  11. package/dist/src/generators/application/files/base-webpack/webpack.config.js__tmpl__ +1 -26
  12. package/dist/src/generators/application/lib/add-e2e.js +5 -6
  13. package/dist/src/generators/application/lib/add-linting.js +0 -1
  14. package/dist/src/generators/application/lib/add-project.js +0 -167
  15. package/dist/src/generators/application/lib/bundlers/add-rsbuild.js +0 -1
  16. package/dist/src/generators/application/lib/bundlers/add-vite.js +0 -2
  17. package/dist/src/generators/application/lib/bundlers/add-webpack.js +0 -1
  18. package/dist/src/generators/application/lib/create-application-files.d.ts +0 -1
  19. package/dist/src/generators/application/lib/create-application-files.js +2 -11
  20. package/dist/src/generators/application/lib/normalize-options.js +0 -4
  21. package/dist/src/generators/application/schema.d.ts +0 -2
  22. package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +4 -16
  23. package/dist/src/generators/cypress-component-configuration/lib/add-files.d.ts +1 -2
  24. package/dist/src/generators/cypress-component-configuration/lib/add-files.js +4 -2
  25. package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -1
  26. package/dist/src/generators/init/init.js +3 -5
  27. package/dist/src/generators/init/schema.d.ts +0 -1
  28. package/dist/src/generators/library/lib/add-linting.js +0 -1
  29. package/dist/src/generators/library/lib/add-rollup-build-target.js +3 -47
  30. package/dist/src/generators/library/lib/normalize-options.js +0 -4
  31. package/dist/src/generators/library/library.js +1 -4
  32. package/dist/src/generators/library/schema.d.ts +0 -1
  33. package/dist/src/generators/stories/stories.js +0 -5
  34. package/dist/src/generators/storybook-configuration/configuration.js +1 -9
  35. package/dist/src/generators/storybook-configuration/schema.d.ts +0 -1
  36. package/dist/src/migrations/update-23-2-0/add-optional-module-federation-packages.js +2 -1
  37. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.d.ts +4 -0
  38. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.js +13 -0
  39. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.md +40 -0
  40. package/dist/src/plugins/router-plugin.d.ts +0 -1
  41. package/dist/src/plugins/router-plugin.js +5 -42
  42. package/dist/src/utils/ast-utils.d.ts +0 -1
  43. package/dist/src/utils/ast-utils.js +0 -23
  44. package/dist/src/utils/ct-utils.d.ts +0 -7
  45. package/dist/src/utils/ct-utils.js +71 -55
  46. package/dist/src/utils/deprecation.d.ts +1 -1
  47. package/dist/src/utils/deprecation.js +3 -5
  48. package/dist/src/utils/framework.js +1 -3
  49. package/dist/src/utils/versions.d.ts +0 -7
  50. package/dist/src/utils/versions.js +2 -9
  51. package/executors.json +1 -17
  52. package/generators.json +0 -27
  53. package/migrations.json +6 -0
  54. package/package.json +17 -47
  55. package/dist/mf/dynamic-federation.d.ts +0 -69
  56. package/dist/mf/dynamic-federation.js +0 -141
  57. package/dist/mf/index.d.ts +0 -1
  58. package/dist/mf/index.js +0 -8
  59. package/dist/module-federation.d.ts +0 -5
  60. package/dist/module-federation.js +0 -20
  61. package/dist/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
  62. package/dist/src/executors/module-federation-dev-server/lib/index.js +0 -5
  63. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +0 -4
  64. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -19
  65. package/dist/src/executors/module-federation-dev-server/lib/start-remotes.d.ts +0 -5
  66. package/dist/src/executors/module-federation-dev-server/lib/start-remotes.js +0 -33
  67. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -6
  68. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -80
  69. package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -19
  70. package/dist/src/executors/module-federation-dev-server/schema.json +0 -142
  71. package/dist/src/executors/module-federation-ssr-dev-server/lib/index.d.ts +0 -2
  72. package/dist/src/executors/module-federation-ssr-dev-server/lib/index.js +0 -5
  73. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -4
  74. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -23
  75. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.d.ts +0 -5
  76. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.js +0 -34
  77. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -3
  78. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -83
  79. package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -29
  80. package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -81
  81. package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +0 -12
  82. package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.js +0 -244
  83. package/dist/src/executors/module-federation-static-server/schema.d.ts +0 -3
  84. package/dist/src/executors/module-federation-static-server/schema.json +0 -16
  85. package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
  86. package/dist/src/generators/federate-module/federate-module.js +0 -67
  87. package/dist/src/generators/federate-module/lib/utils.d.ts +0 -23
  88. package/dist/src/generators/federate-module/lib/utils.js +0 -99
  89. package/dist/src/generators/federate-module/schema.d.ts +0 -15
  90. package/dist/src/generators/federate-module/schema.json +0 -89
  91. package/dist/src/generators/host/files/common/src/app/__fileName__.js__tmpl__ +0 -40
  92. package/dist/src/generators/host/files/common/src/main.js__tmpl__ +0 -13
  93. package/dist/src/generators/host/files/common/tsconfig.lint.json__tmpl__ +0 -19
  94. package/dist/src/generators/host/files/common-ts/src/app/__fileName__.tsx__tmpl__ +0 -41
  95. package/dist/src/generators/host/files/common-ts/src/main.ts__tmpl__ +0 -13
  96. package/dist/src/generators/host/files/rspack-common/src/app/__fileName__.jsx__tmpl__ +0 -42
  97. package/dist/src/generators/host/files/rspack-common/src/main.jsx__tmpl__ +0 -13
  98. package/dist/src/generators/host/files/rspack-common/tsconfig.lint.json__tmpl__ +0 -19
  99. package/dist/src/generators/host/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -24
  100. package/dist/src/generators/host/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -42
  101. package/dist/src/generators/host/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -66
  102. package/dist/src/generators/host/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -27
  103. package/dist/src/generators/host/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -68
  104. package/dist/src/generators/host/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -28
  105. package/dist/src/generators/host/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -49
  106. package/dist/src/generators/host/files/rspack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
  107. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -22
  108. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -68
  109. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
  110. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -49
  111. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
  112. package/dist/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
  113. package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -67
  114. package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -42
  115. package/dist/src/generators/host/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -24
  116. package/dist/src/generators/host/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
  117. package/dist/src/generators/host/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -39
  118. package/dist/src/generators/host/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -19
  119. package/dist/src/generators/host/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -28
  120. package/dist/src/generators/host/files/webpack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
  121. package/dist/src/generators/host/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
  122. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -16
  123. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
  124. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
  125. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
  126. package/dist/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
  127. package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -40
  128. package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -18
  129. package/dist/src/generators/host/host.d.ts +0 -4
  130. package/dist/src/generators/host/host.js +0 -174
  131. package/dist/src/generators/host/lib/add-module-federation-files.d.ts +0 -6
  132. package/dist/src/generators/host/lib/add-module-federation-files.js +0 -92
  133. package/dist/src/generators/host/lib/normalize-host-name.d.ts +0 -2
  134. package/dist/src/generators/host/lib/normalize-host-name.js +0 -12
  135. package/dist/src/generators/host/lib/setup-ssr-for-host.d.ts +0 -6
  136. package/dist/src/generators/host/lib/setup-ssr-for-host.js +0 -59
  137. package/dist/src/generators/host/lib/update-module-federation-e2e-project.d.ts +0 -3
  138. package/dist/src/generators/host/lib/update-module-federation-e2e-project.js +0 -19
  139. package/dist/src/generators/host/lib/update-module-federation-tsconfig.d.ts +0 -3
  140. package/dist/src/generators/host/lib/update-module-federation-tsconfig.js +0 -34
  141. package/dist/src/generators/host/schema.d.ts +0 -44
  142. package/dist/src/generators/host/schema.json +0 -173
  143. package/dist/src/generators/remote/files/common/src/main.js__tmpl__ +0 -1
  144. package/dist/src/generators/remote/files/common/src/remote-entry.js__tmpl__ +0 -1
  145. package/dist/src/generators/remote/files/common-ts/src/main.ts__tmpl__ +0 -1
  146. package/dist/src/generators/remote/files/common-ts/src/remote-entry.ts__tmpl__ +0 -1
  147. package/dist/src/generators/remote/files/rspack-common/src/main.jsx__tmpl__ +0 -1
  148. package/dist/src/generators/remote/files/rspack-common/src/remote-entry.js__tmpl__ +0 -1
  149. package/dist/src/generators/remote/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -12
  150. package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -45
  151. package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -1
  152. package/dist/src/generators/remote/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -15
  153. package/dist/src/generators/remote/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -71
  154. package/dist/src/generators/remote/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -45
  155. package/dist/src/generators/remote/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -45
  156. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -19
  157. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -71
  158. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
  159. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -45
  160. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
  161. package/dist/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
  162. package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -1
  163. package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -45
  164. package/dist/src/generators/remote/files/rspack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
  165. package/dist/src/generators/remote/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -12
  166. package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
  167. package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -1
  168. package/dist/src/generators/remote/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -9
  169. package/dist/src/generators/remote/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -45
  170. package/dist/src/generators/remote/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
  171. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -13
  172. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
  173. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
  174. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
  175. package/dist/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
  176. package/dist/src/generators/remote/files/webpack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
  177. package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -1
  178. package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -17
  179. package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.d.ts +0 -2
  180. package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.js +0 -12
  181. package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.d.ts +0 -3
  182. package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.js +0 -30
  183. package/dist/src/generators/remote/lib/setup-ssr-for-remote.d.ts +0 -4
  184. package/dist/src/generators/remote/lib/setup-ssr-for-remote.js +0 -61
  185. package/dist/src/generators/remote/lib/setup-tspath-for-remote.d.ts +0 -3
  186. package/dist/src/generators/remote/lib/setup-tspath-for-remote.js +0 -14
  187. package/dist/src/generators/remote/lib/update-host-with-remote.d.ts +0 -2
  188. package/dist/src/generators/remote/lib/update-host-with-remote.js +0 -79
  189. package/dist/src/generators/remote/remote.d.ts +0 -6
  190. package/dist/src/generators/remote/remote.js +0 -201
  191. package/dist/src/generators/remote/schema.d.ts +0 -39
  192. package/dist/src/generators/remote/schema.json +0 -173
  193. package/dist/src/generators/setup-ssr/files/server.ts__tmpl__ +0 -28
  194. package/dist/src/generators/setup-ssr/files/src/main.server.tsx__tmpl__ +0 -47
  195. package/dist/src/generators/setup-ssr/files/tsconfig.server.json__tmpl__ +0 -17
  196. package/dist/src/generators/setup-ssr/schema.d.ts +0 -8
  197. package/dist/src/generators/setup-ssr/schema.json +0 -54
  198. package/dist/src/generators/setup-ssr/setup-ssr.d.ts +0 -4
  199. package/dist/src/generators/setup-ssr/setup-ssr.js +0 -198
  200. package/dist/src/module-federation/ast-utils.d.ts +0 -8
  201. package/dist/src/module-federation/ast-utils.js +0 -101
  202. package/dist/src/rules/update-module-federation-project.d.ts +0 -11
  203. package/dist/src/rules/update-module-federation-project.js +0 -72
  204. package/dist/src/utils/add-mf-env-to-inputs.d.ts +0 -2
  205. package/dist/src/utils/add-mf-env-to-inputs.js +0 -29
  206. package/dist/src/utils/module-federation-deprecation.d.ts +0 -12
  207. package/dist/src/utils/module-federation-deprecation.js +0 -46
  208. package/dist/src/utils/normalize-remote.d.ts +0 -8
  209. package/dist/src/utils/normalize-remote.js +0 -31
@@ -1,6 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../schema';
3
- export declare function addModuleFederationFiles(host: Tree, options: NormalizedSchema, defaultRemoteManifest: {
4
- name: string;
5
- port: number;
6
- }[]): void;
@@ -1,92 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addModuleFederationFiles = addModuleFederationFiles;
4
- const devkit_1 = require("@nx/devkit");
5
- const internal_1 = require("@nx/js/internal");
6
- const maybe_js_1 = require("../../../utils/maybe-js");
7
- const create_application_files_1 = require("../../application/lib/create-application-files");
8
- const path_1 = require("path");
9
- function addModuleFederationFiles(host, options, defaultRemoteManifest) {
10
- const templateVariables = options.bundler === 'rspack'
11
- ? {
12
- ...(0, create_application_files_1.getDefaultTemplateVariables)(host, options),
13
- rspackPluginOptions: {
14
- ...(0, create_application_files_1.createNxRspackPluginOptions)(options, (0, devkit_1.offsetFromRoot)(options.appProjectRoot), false),
15
- mainServer: `./server.ts`,
16
- },
17
- static: !options?.dynamic,
18
- remotes: defaultRemoteManifest.map(({ name, port }) => {
19
- return {
20
- ...(0, devkit_1.names)(name),
21
- port,
22
- };
23
- }),
24
- }
25
- : {
26
- ...(0, devkit_1.names)(options.projectName),
27
- ...options,
28
- static: !options?.dynamic,
29
- tmpl: '',
30
- remotes: defaultRemoteManifest.map(({ name, port }) => {
31
- return {
32
- ...(0, devkit_1.names)(name),
33
- port,
34
- };
35
- }),
36
- };
37
- const projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.projectName);
38
- const pathToMFManifest = (0, devkit_1.joinPathFragments)((0, internal_1.getProjectSourceRoot)(projectConfig, host), 'assets/module-federation.manifest.json');
39
- // Module federation requires bootstrap code to be dynamically imported.
40
- // Renaming original entry file so we can use `import(./bootstrap)` in
41
- // new entry file.
42
- host.rename((0, devkit_1.joinPathFragments)(options.appProjectRoot, (0, maybe_js_1.maybeJs)({ js: options.js, useJsx: options.bundler === 'rspack' }, 'src/main.tsx')), (0, devkit_1.joinPathFragments)(options.appProjectRoot, (0, maybe_js_1.maybeJs)({ js: options.js, useJsx: options.bundler === 'rspack' }, 'src/bootstrap.tsx')));
43
- (0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, `../files/${options.js
44
- ? options.bundler === 'rspack'
45
- ? 'rspack-common'
46
- : 'common'
47
- : 'common-ts'}`), options.appProjectRoot, templateVariables);
48
- const pathToModuleFederationFiles = options.typescriptConfiguration
49
- ? `${options.bundler === 'rspack' ? 'rspack-' : 'webpack-'}module-federation-ts`
50
- : `${options.bundler === 'rspack' ? 'rspack-' : 'webpack-'}module-federation`;
51
- // New entry file is created here.
52
- (0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, `../files/${pathToModuleFederationFiles}`), options.appProjectRoot, templateVariables);
53
- function deleteFileIfExists(host, filePath) {
54
- if (host.exists(filePath)) {
55
- host.delete(filePath);
56
- }
57
- }
58
- function processBundlerConfigFile(options, host, fileName) {
59
- const pathToBundlerConfig = (0, devkit_1.joinPathFragments)(options.appProjectRoot, fileName);
60
- deleteFileIfExists(host, pathToBundlerConfig);
61
- }
62
- if (options.typescriptConfiguration) {
63
- if (options.bundler === 'rspack') {
64
- processBundlerConfigFile(options, host, 'rspack.config.js');
65
- processBundlerConfigFile(options, host, 'rspack.config.prod.js');
66
- }
67
- else {
68
- processBundlerConfigFile(options, host, 'webpack.config.js');
69
- processBundlerConfigFile(options, host, 'webpack.config.prod.js');
70
- }
71
- // Delete TypeScript prod config in TS solution setup - not needed in Crystal
72
- if ((0, internal_1.isUsingTsSolutionSetup)(host)) {
73
- const prodConfigFileName = options.bundler === 'rspack'
74
- ? 'rspack.config.prod.ts'
75
- : 'webpack.config.prod.ts';
76
- processBundlerConfigFile(options, host, prodConfigFileName);
77
- }
78
- }
79
- if (options.dynamic) {
80
- processBundlerConfigFile(options, host, 'webpack.config.prod.js');
81
- processBundlerConfigFile(options, host, 'webpack.config.prod.ts');
82
- processBundlerConfigFile(options, host, 'rspack.config.prod.js');
83
- processBundlerConfigFile(options, host, 'rspack.config.prod.ts');
84
- if (!host.exists(pathToMFManifest)) {
85
- host.write(pathToMFManifest, `{
86
- ${defaultRemoteManifest
87
- .map(({ name, port }) => `"${name}": "http://localhost:${port}/mf-manifest.json"`)
88
- .join(',\n')}
89
- }`);
90
- }
91
- }
92
- }
@@ -1,2 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- export declare function normalizeHostName(tree: Tree, directory: string, name?: string): Promise<string>;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeHostName = normalizeHostName;
4
- const internal_1 = require("@nx/devkit/internal");
5
- async function normalizeHostName(tree, directory, name) {
6
- const { projectName } = await (0, internal_1.determineProjectNameAndRootOptions)(tree, {
7
- name,
8
- directory,
9
- projectType: 'application',
10
- });
11
- return projectName;
12
- }
@@ -1,6 +0,0 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
2
- import type { NormalizedSchema } from '../schema';
3
- export declare function setupSsrForHost(tree: Tree, options: NormalizedSchema, appName: string, defaultRemoteManifest: {
4
- name: string;
5
- port: number;
6
- }[]): Promise<GeneratorCallback>;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupSsrForHost = setupSsrForHost;
4
- const devkit_1 = require("@nx/devkit");
5
- const versions_1 = require("../../../utils/versions");
6
- const create_application_files_1 = require("../../application/lib/create-application-files");
7
- async function setupSsrForHost(tree, options, appName, defaultRemoteManifest) {
8
- const tasks = [];
9
- let project = (0, devkit_1.readProjectConfiguration)(tree, appName);
10
- if (options.bundler !== 'rspack') {
11
- project.targets.serve.executor =
12
- '@nx/react:module-federation-ssr-dev-server';
13
- (0, devkit_1.updateProjectConfiguration)(tree, appName, project);
14
- }
15
- const pathToModuleFederationSsrFiles = options.typescriptConfiguration
16
- ? `${options.bundler === 'rspack' ? 'rspack-' : 'webpack-'}module-federation-ssr-ts`
17
- : `${options.bundler === 'rspack' ? 'rspack-' : 'webpack-'}module-federation-ssr`;
18
- const templateVariables = options.bundler === 'rspack'
19
- ? {
20
- ...(0, create_application_files_1.getDefaultTemplateVariables)(tree, options),
21
- rspackPluginOptions: {
22
- ...(0, create_application_files_1.createNxRspackPluginOptions)(options, (0, devkit_1.offsetFromRoot)(options.appProjectRoot), false),
23
- mainServer: `./server.ts`,
24
- },
25
- port: Number(options?.port) || 4200,
26
- appName,
27
- static: !options?.dynamic,
28
- remotes: defaultRemoteManifest.map(({ name, port }) => {
29
- return {
30
- ...(0, devkit_1.names)(name),
31
- port,
32
- };
33
- }),
34
- }
35
- : {
36
- ...options,
37
- static: !options?.dynamic,
38
- port: Number(options?.port) || 4200,
39
- appName,
40
- tmpl: '',
41
- browserBuildOutputPath: project.targets.build?.options?.outputPath,
42
- remotes: defaultRemoteManifest.map(({ name, port }) => {
43
- return {
44
- ...(0, devkit_1.names)(name),
45
- port,
46
- };
47
- }),
48
- };
49
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, `../files/${pathToModuleFederationSsrFiles}`), project.root, templateVariables);
50
- const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
51
- '@module-federation/node': versions_1.moduleFederationNodeVersion,
52
- cors: versions_1.corsVersion,
53
- isbot: versions_1.isbotVersion,
54
- express: versions_1.expressVersion,
55
- '@types/express': versions_1.typesExpressVersion,
56
- }, {}, undefined, true);
57
- tasks.push(installTask);
58
- return (0, devkit_1.runTasksInSerial)(...tasks);
59
- }
@@ -1,3 +0,0 @@
1
- import { NormalizedSchema } from '../schema';
2
- import { Tree } from '@nx/devkit';
3
- export declare function updateModuleFederationE2eProject(host: Tree, options: NormalizedSchema): void;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateModuleFederationE2eProject = updateModuleFederationE2eProject;
4
- const devkit_1 = require("@nx/devkit");
5
- function updateModuleFederationE2eProject(host, options) {
6
- try {
7
- let projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.e2eProjectName);
8
- if (projectConfig.targets.e2e.executor !== '@nx/playwright:playwright') {
9
- projectConfig.targets.e2e.options = {
10
- ...projectConfig.targets.e2e.options,
11
- baseUrl: `http://localhost:${options.port}`,
12
- };
13
- (0, devkit_1.updateProjectConfiguration)(host, options.e2eProjectName, projectConfig);
14
- }
15
- }
16
- catch {
17
- // nothing
18
- }
19
- }
@@ -1,3 +0,0 @@
1
- import { type Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../schema';
3
- export declare function updateModuleFederationTsconfig(host: Tree, options: NormalizedSchema): void;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateModuleFederationTsconfig = updateModuleFederationTsconfig;
4
- const devkit_1 = require("@nx/devkit");
5
- const internal_1 = require("@nx/js/internal");
6
- function updateModuleFederationTsconfig(host, options) {
7
- const tsconfigPath = (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.json');
8
- const tsconfigRuntimePath = (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.app.json');
9
- if (!host.exists(tsconfigPath) || !host.exists(tsconfigRuntimePath))
10
- return;
11
- if ((0, internal_1.isUsingTsSolutionSetup)(host)) {
12
- // Update references to match what `nx sync` does.
13
- if (options.remotes?.length) {
14
- (0, devkit_1.updateJson)(host, tsconfigPath, (json) => {
15
- json.references ??= [];
16
- for (const remote of options.remotes) {
17
- const remotePath = `../${remote}`;
18
- if (!json.references.some((ref) => ref.path === remotePath))
19
- json.references.push({ path: remotePath });
20
- }
21
- return json;
22
- });
23
- (0, devkit_1.updateJson)(host, tsconfigRuntimePath, (json) => {
24
- json.references ??= [];
25
- for (const remote of options.remotes) {
26
- const remotePath = `../${remote}/tsconfig.app.json`;
27
- if (!json.references.some((ref) => ref.path === remotePath))
28
- json.references.push({ path: remotePath });
29
- }
30
- return json;
31
- });
32
- }
33
- }
34
- }
@@ -1,44 +0,0 @@
1
- import type { LinterType } from '@nx/js';
2
- import type { SupportedStyles } from '../../../typings/style';
3
-
4
- export interface Schema {
5
- classComponent?: boolean;
6
- compiler?: 'babel' | 'swc';
7
- port?: number;
8
- /** @deprecated Use {@link Schema.port} instead. This option will be removed in Nx v24. */
9
- devServerPort?: number;
10
- directory: string;
11
- e2eTestRunner: 'cypress' | 'playwright' | 'none';
12
- globalCss?: boolean;
13
- js?: boolean;
14
- linter?: LinterType;
15
- name?: string;
16
- remotes?: string[];
17
- enableTypedLinting?: boolean;
18
- /**
19
- * @deprecated Use `enableTypedLinting` instead. This option will be removed in Nx v24.
20
- */
21
- setParserOptionsProject?: boolean;
22
- skipFormat?: boolean;
23
- skipNxJson?: boolean;
24
- skipPackageJson?: boolean;
25
- ssr?: boolean;
26
- strict?: boolean;
27
- style: SupportedStyles;
28
- tags?: string;
29
- unitTestRunner: 'jest' | 'vitest' | 'none';
30
- minimal?: boolean;
31
- typescriptConfiguration?: boolean;
32
- dynamic?: boolean;
33
- addPlugin?: boolean;
34
- bundler?: 'rspack' | 'webpack';
35
- }
36
-
37
- export interface NormalizedSchema extends Schema {
38
- // `normalizeOptions` always resolves this, so it is no longer optional.
39
- linter: LinterType;
40
- appProjectRoot: string;
41
- e2eProjectName: string;
42
- projectName: string;
43
- addPlugin?: boolean;
44
- }
@@ -1,173 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/schema",
3
- "$id": "GeneratorReactHost",
4
- "cli": "nx",
5
- "title": "Generate Module Federation Setup for React Consumer (Host) App",
6
- "description": "Create Module Federation configuration files for given React Consumer (Host) Application.",
7
- "type": "object",
8
- "properties": {
9
- "directory": {
10
- "description": "The directory of the new application.",
11
- "type": "string",
12
- "alias": "dir",
13
- "$default": {
14
- "$source": "argv",
15
- "index": 0
16
- },
17
- "x-prompt": "Which directory do you want to create the application in?"
18
- },
19
- "name": {
20
- "type": "string",
21
- "description": "The name of the Consumer (host) application to generate the Module Federation configuration",
22
- "pattern": "^[a-zA-Z][^:]*$",
23
- "x-priority": "important"
24
- },
25
- "style": {
26
- "description": "The file extension to be used for style files.",
27
- "type": "string",
28
- "default": "css",
29
- "alias": "s",
30
- "enum": ["css", "scss", "none"],
31
- "x-prompt": {
32
- "message": "Which stylesheet format would you like to use?",
33
- "type": "list",
34
- "items": [
35
- {
36
- "value": "css",
37
- "label": "CSS"
38
- },
39
- {
40
- "value": "scss",
41
- "label": "SASS(.scss) [ https://sass-lang.com ]"
42
- },
43
- {
44
- "value": "none",
45
- "label": "None"
46
- }
47
- ]
48
- }
49
- },
50
- "linter": {
51
- "description": "The tool to use for running lint checks. Defaults to the linter the workspace already uses.",
52
- "type": "string",
53
- "enum": ["eslint", "oxlint", "none"]
54
- },
55
- "dynamic": {
56
- "type": "boolean",
57
- "description": "Should the Consumer (host) application use dynamic federation?",
58
- "default": false
59
- },
60
- "skipFormat": {
61
- "description": "Skip formatting files.",
62
- "type": "boolean",
63
- "default": false,
64
- "x-priority": "internal"
65
- },
66
- "skipNxJson": {
67
- "description": "Skip updating nx.json with default options based on values provided to this app (e.g. babel, style).",
68
- "type": "boolean",
69
- "default": false,
70
- "x-priority": "internal"
71
- },
72
- "unitTestRunner": {
73
- "type": "string",
74
- "enum": ["jest", "vitest", "none"],
75
- "description": "Test runner to use for unit tests.",
76
- "default": "jest"
77
- },
78
- "e2eTestRunner": {
79
- "type": "string",
80
- "enum": ["playwright", "cypress", "none"],
81
- "description": "Test runner to use for end to end (E2E) tests.",
82
- "x-prompt": "Which E2E test runner would you like to use?",
83
- "default": "playwright"
84
- },
85
- "tags": {
86
- "type": "string",
87
- "description": "Add tags to the application (used for linting).",
88
- "alias": "t"
89
- },
90
- "classComponent": {
91
- "type": "boolean",
92
- "description": "Use class components instead of functional component.",
93
- "alias": "C",
94
- "default": false
95
- },
96
- "js": {
97
- "type": "boolean",
98
- "description": "Generate JavaScript files rather than TypeScript files.",
99
- "default": false
100
- },
101
- "globalCss": {
102
- "type": "boolean",
103
- "description": "Default is false. When true, the component is generated with *.css/*.scss instead of *.module.css/*.module.scss",
104
- "default": false
105
- },
106
- "strict": {
107
- "type": "boolean",
108
- "description": "Creates an application with strict mode and strict type checking",
109
- "default": true
110
- },
111
- "enableTypedLinting": {
112
- "type": "boolean",
113
- "description": "Whether to enable typed linting. For flat configs, this configures the recommended `parserOptions.projectService` and `tsconfigRootDir`. For legacy `.eslintrc` configs, this configures `parserOptions.project`. We do not enable this by default for lint performance reasons.",
114
- "default": false
115
- },
116
- "setParserOptionsProject": {
117
- "type": "boolean",
118
- "description": "Deprecated alias for `enableTypedLinting`.",
119
- "default": false,
120
- "x-deprecated": "Use `enableTypedLinting` instead. This option will be removed in Nx v24."
121
- },
122
- "compiler": {
123
- "type": "string",
124
- "description": "The compiler to use",
125
- "enum": ["babel", "swc"],
126
- "default": "babel"
127
- },
128
- "remotes": {
129
- "type": "array",
130
- "description": "A list of Producer (remote) application names that the Consumer (host) application should consume.",
131
- "default": [],
132
- "x-priority": "important",
133
- "alias": "producers"
134
- },
135
- "port": {
136
- "type": "number",
137
- "description": "The port at which the Consumer (host) application should be served. Defaults to 4200.",
138
- "aliases": ["devServerPort"],
139
- "x-priority": "important"
140
- },
141
- "ssr": {
142
- "description": "Whether to configure SSR for the Consumer (host) application",
143
- "type": "boolean",
144
- "default": false
145
- },
146
- "minimal": {
147
- "description": "Generate a React app with a minimal setup. No nx starter template.",
148
- "type": "boolean",
149
- "default": false
150
- },
151
- "typescriptConfiguration": {
152
- "type": "boolean",
153
- "description": "Whether the module federation configuration and webpack configuration files should use TS. When --js is used, this flag is ignored.",
154
- "default": true
155
- },
156
- "skipPackageJson": {
157
- "description": "Do not add dependencies to `package.json`.",
158
- "type": "boolean",
159
- "default": false,
160
- "x-priority": "internal"
161
- },
162
- "bundler": {
163
- "description": "The bundler to use.",
164
- "type": "string",
165
- "enum": ["rspack", "webpack"],
166
- "x-prompt": "Which bundler do you want to use to build the application?",
167
- "default": "rspack",
168
- "x-priority": "important"
169
- }
170
- },
171
- "required": ["directory"],
172
- "additionalProperties": false
173
- }
@@ -1 +0,0 @@
1
- import('./bootstrap');
@@ -1 +0,0 @@
1
- export { default } from './app/app';
@@ -1 +0,0 @@
1
- import('./bootstrap');
@@ -1 +0,0 @@
1
- export { default } from './app/app';
@@ -1 +0,0 @@
1
- import('./bootstrap');
@@ -1 +0,0 @@
1
- export { default } from './app/app';
@@ -1,12 +0,0 @@
1
- /**
2
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
3
- **/
4
- module.exports = {
5
- name: '<%= projectName %>',
6
- <%_ if (dynamic) { _%>
7
- library: { type: 'var', name: '<%= projectName %>'},
8
- <%_ } _%>
9
- exposes: {
10
- './Module': './src/remote-entry.<%= js ? 'js' : 'ts' %>',
11
- },
12
- };
@@ -1,45 +0,0 @@
1
- const { NxAppRspackPlugin } = require('@nx/rspack/app-plugin');
2
- const { NxReactRspackPlugin } = require('@nx/rspack/react-plugin');
3
- const { NxModuleFederationPlugin, NxModuleFederationDevServerPlugin } = require('@nx/module-federation/rspack');
4
- const { join } = require('path');
5
-
6
- const config = require('./module-federation.config');
7
-
8
- module.exports = {
9
- // rspack-cli dev mode defaults this on; it breaks module federation.
10
- lazyCompilation: false,
11
- output: {
12
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>'),
13
- publicPath: 'auto'
14
- },
15
- devServer: {
16
- port: <%= port %>,
17
- headers: {
18
- "Access-Control-Allow-Origin": "*"
19
- },
20
- historyApiFallback: {
21
- index: '/index.html',
22
- disableDotRule: true,
23
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
24
- },
25
- },
26
- plugins: [
27
- new NxAppRspackPlugin({
28
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
29
- main: '<%= rspackPluginOptions.main %>',
30
- index: '<%= rspackPluginOptions.index %>',
31
- baseHref: '<%= rspackPluginOptions.baseHref %>',
32
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
33
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
34
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
35
- optimization: process.env['NODE_ENV'] === 'production',
36
- }),
37
- new NxReactRspackPlugin({
38
- // Uncomment this line if you don't want to use SVGR
39
- // See: https://react-svgr.com/
40
- // svgr: false
41
- }),
42
- new NxModuleFederationPlugin({ config }, { dts: false }),
43
- new NxModuleFederationDevServerPlugin({ config }),
44
- ],
45
- };
@@ -1 +0,0 @@
1
- module.exports = require('./rspack.config');
@@ -1,15 +0,0 @@
1
- /**
2
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
3
- **/
4
- module.exports = {
5
- name: '<%= projectName %>',
6
- exposes: {
7
- './Module': './src/remote-entry.<%= js ? 'js' : 'ts' %>',
8
- },
9
- shared: (libraryName, libraryConfig) => {
10
- return {
11
- ...libraryConfig,
12
- eager: true
13
- }
14
- },
15
- };
@@ -1,71 +0,0 @@
1
- const { NxAppRspackPlugin } = require('@nx/rspack/app-plugin');
2
- const { NxReactRspackPlugin } = require('@nx/rspack/react-plugin');
3
- const { NxModuleFederationPlugin, NxModuleFederationSSRDevServerPlugin } = require('@nx/module-federation/rspack');
4
- const { join } = require('path');
5
-
6
- const browserMfConfig = require('./module-federation.config');
7
- const serverMfConfig = require('./module-federation.server.config');
8
-
9
- const browserRspackConfig = {
10
- name: 'browser',
11
- // rspack-cli dev mode defaults this on; it breaks module federation.
12
- lazyCompilation: false,
13
- output: {
14
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'browser'),
15
- publicPath: 'auto'
16
- },
17
- devServer: {
18
- port: <%= port %>,
19
- headers: {
20
- "Access-Control-Allow-Origin": "*"
21
- },
22
- historyApiFallback: {
23
- index: '/index.html',
24
- disableDotRule: true,
25
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
26
- },
27
- devMiddleware: {
28
- writeToDisk: (file: string) => !file.includes('.hot-update.'),
29
- },
30
- },
31
- plugins: [
32
- new NxAppRspackPlugin({
33
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
34
- main: '<%= rspackPluginOptions.main %>',
35
- index: '<%= rspackPluginOptions.index %>',
36
- baseHref: '<%= rspackPluginOptions.baseHref %>',
37
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
38
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
39
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
40
- optimization: process.env['NODE_ENV'] === 'production',
41
- }),
42
- new NxReactRspackPlugin({
43
- // Uncomment this line if you don't want to use SVGR
44
- // See: https://react-svgr.com/
45
- // svgr: false
46
- }),
47
- new NxModuleFederationPlugin({ config: browserMfConfig }, { dts: false }),
48
- ],
49
- };
50
-
51
- const serverRspackConfig = {
52
- name: 'server',
53
- target: 'async-node',
54
- output: {
55
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
56
- filename: 'server.js'
57
- },
58
- plugins: [
59
- new NxAppRspackPlugin({
60
- outputPath: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
61
- outputFileName: 'server.js',
62
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
63
- main: '<%= rspackPluginOptions.mainServer %>',
64
- baseHref: '<%= rspackPluginOptions.baseHref %>',
65
- }),
66
- new NxModuleFederationPlugin({ config: serverMfConfig, isServer: true }, { dts: false }),
67
- new NxModuleFederationSSRDevServerPlugin({ config: serverMfConfig }),
68
- ],
69
- };
70
-
71
- module.exports = [browserRspackConfig, serverRspackConfig];