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

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 (204) 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 +1 -9
  23. package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -1
  24. package/dist/src/generators/init/init.js +3 -5
  25. package/dist/src/generators/init/schema.d.ts +0 -1
  26. package/dist/src/generators/library/lib/add-linting.js +0 -1
  27. package/dist/src/generators/library/lib/add-rollup-build-target.js +3 -47
  28. package/dist/src/generators/library/lib/normalize-options.js +0 -4
  29. package/dist/src/generators/library/library.js +1 -4
  30. package/dist/src/generators/library/schema.d.ts +0 -1
  31. package/dist/src/generators/storybook-configuration/configuration.js +1 -9
  32. package/dist/src/generators/storybook-configuration/schema.d.ts +0 -1
  33. package/dist/src/migrations/update-23-2-0/add-optional-module-federation-packages.js +2 -1
  34. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.d.ts +4 -0
  35. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.js +13 -0
  36. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.md +40 -0
  37. package/dist/src/plugins/router-plugin.d.ts +0 -1
  38. package/dist/src/plugins/router-plugin.js +5 -42
  39. package/dist/src/utils/ast-utils.d.ts +0 -1
  40. package/dist/src/utils/ast-utils.js +0 -23
  41. package/dist/src/utils/ct-utils.js +54 -14
  42. package/dist/src/utils/deprecation.d.ts +1 -1
  43. package/dist/src/utils/deprecation.js +3 -5
  44. package/dist/src/utils/versions.d.ts +0 -7
  45. package/dist/src/utils/versions.js +2 -9
  46. package/executors.json +1 -17
  47. package/generators.json +0 -27
  48. package/migrations.json +6 -0
  49. package/package.json +17 -47
  50. package/dist/mf/dynamic-federation.d.ts +0 -69
  51. package/dist/mf/dynamic-federation.js +0 -141
  52. package/dist/mf/index.d.ts +0 -1
  53. package/dist/mf/index.js +0 -8
  54. package/dist/module-federation.d.ts +0 -5
  55. package/dist/module-federation.js +0 -20
  56. package/dist/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
  57. package/dist/src/executors/module-federation-dev-server/lib/index.js +0 -5
  58. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +0 -4
  59. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -19
  60. package/dist/src/executors/module-federation-dev-server/lib/start-remotes.d.ts +0 -5
  61. package/dist/src/executors/module-federation-dev-server/lib/start-remotes.js +0 -33
  62. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -6
  63. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -80
  64. package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -19
  65. package/dist/src/executors/module-federation-dev-server/schema.json +0 -142
  66. package/dist/src/executors/module-federation-ssr-dev-server/lib/index.d.ts +0 -2
  67. package/dist/src/executors/module-federation-ssr-dev-server/lib/index.js +0 -5
  68. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -4
  69. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -23
  70. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.d.ts +0 -5
  71. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.js +0 -34
  72. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -3
  73. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -83
  74. package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -29
  75. package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -81
  76. package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +0 -12
  77. package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.js +0 -244
  78. package/dist/src/executors/module-federation-static-server/schema.d.ts +0 -3
  79. package/dist/src/executors/module-federation-static-server/schema.json +0 -16
  80. package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
  81. package/dist/src/generators/federate-module/federate-module.js +0 -67
  82. package/dist/src/generators/federate-module/lib/utils.d.ts +0 -23
  83. package/dist/src/generators/federate-module/lib/utils.js +0 -99
  84. package/dist/src/generators/federate-module/schema.d.ts +0 -15
  85. package/dist/src/generators/federate-module/schema.json +0 -89
  86. package/dist/src/generators/host/files/common/src/app/__fileName__.js__tmpl__ +0 -40
  87. package/dist/src/generators/host/files/common/src/main.js__tmpl__ +0 -13
  88. package/dist/src/generators/host/files/common/tsconfig.lint.json__tmpl__ +0 -19
  89. package/dist/src/generators/host/files/common-ts/src/app/__fileName__.tsx__tmpl__ +0 -41
  90. package/dist/src/generators/host/files/common-ts/src/main.ts__tmpl__ +0 -13
  91. package/dist/src/generators/host/files/rspack-common/src/app/__fileName__.jsx__tmpl__ +0 -42
  92. package/dist/src/generators/host/files/rspack-common/src/main.jsx__tmpl__ +0 -13
  93. package/dist/src/generators/host/files/rspack-common/tsconfig.lint.json__tmpl__ +0 -19
  94. package/dist/src/generators/host/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -24
  95. package/dist/src/generators/host/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -42
  96. package/dist/src/generators/host/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -66
  97. package/dist/src/generators/host/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -27
  98. package/dist/src/generators/host/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -68
  99. package/dist/src/generators/host/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -28
  100. package/dist/src/generators/host/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -49
  101. package/dist/src/generators/host/files/rspack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
  102. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -22
  103. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -68
  104. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
  105. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -49
  106. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
  107. package/dist/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
  108. package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -67
  109. package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -42
  110. package/dist/src/generators/host/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -24
  111. package/dist/src/generators/host/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
  112. package/dist/src/generators/host/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -39
  113. package/dist/src/generators/host/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -19
  114. package/dist/src/generators/host/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -28
  115. package/dist/src/generators/host/files/webpack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
  116. package/dist/src/generators/host/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
  117. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -16
  118. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
  119. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
  120. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
  121. package/dist/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
  122. package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -40
  123. package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -18
  124. package/dist/src/generators/host/host.d.ts +0 -4
  125. package/dist/src/generators/host/host.js +0 -174
  126. package/dist/src/generators/host/lib/add-module-federation-files.d.ts +0 -6
  127. package/dist/src/generators/host/lib/add-module-federation-files.js +0 -92
  128. package/dist/src/generators/host/lib/normalize-host-name.d.ts +0 -2
  129. package/dist/src/generators/host/lib/normalize-host-name.js +0 -12
  130. package/dist/src/generators/host/lib/setup-ssr-for-host.d.ts +0 -6
  131. package/dist/src/generators/host/lib/setup-ssr-for-host.js +0 -59
  132. package/dist/src/generators/host/lib/update-module-federation-e2e-project.d.ts +0 -3
  133. package/dist/src/generators/host/lib/update-module-federation-e2e-project.js +0 -19
  134. package/dist/src/generators/host/lib/update-module-federation-tsconfig.d.ts +0 -3
  135. package/dist/src/generators/host/lib/update-module-federation-tsconfig.js +0 -34
  136. package/dist/src/generators/host/schema.d.ts +0 -44
  137. package/dist/src/generators/host/schema.json +0 -173
  138. package/dist/src/generators/remote/files/common/src/main.js__tmpl__ +0 -1
  139. package/dist/src/generators/remote/files/common/src/remote-entry.js__tmpl__ +0 -1
  140. package/dist/src/generators/remote/files/common-ts/src/main.ts__tmpl__ +0 -1
  141. package/dist/src/generators/remote/files/common-ts/src/remote-entry.ts__tmpl__ +0 -1
  142. package/dist/src/generators/remote/files/rspack-common/src/main.jsx__tmpl__ +0 -1
  143. package/dist/src/generators/remote/files/rspack-common/src/remote-entry.js__tmpl__ +0 -1
  144. package/dist/src/generators/remote/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -12
  145. package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -45
  146. package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -1
  147. package/dist/src/generators/remote/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -15
  148. package/dist/src/generators/remote/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -71
  149. package/dist/src/generators/remote/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -45
  150. package/dist/src/generators/remote/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -45
  151. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -19
  152. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -71
  153. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
  154. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -45
  155. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
  156. package/dist/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
  157. package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -1
  158. package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -45
  159. package/dist/src/generators/remote/files/rspack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
  160. package/dist/src/generators/remote/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -12
  161. package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
  162. package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -1
  163. package/dist/src/generators/remote/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -9
  164. package/dist/src/generators/remote/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -45
  165. package/dist/src/generators/remote/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
  166. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -13
  167. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
  168. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
  169. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
  170. package/dist/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
  171. package/dist/src/generators/remote/files/webpack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
  172. package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -1
  173. package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -17
  174. package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.d.ts +0 -2
  175. package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.js +0 -12
  176. package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.d.ts +0 -3
  177. package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.js +0 -30
  178. package/dist/src/generators/remote/lib/setup-ssr-for-remote.d.ts +0 -4
  179. package/dist/src/generators/remote/lib/setup-ssr-for-remote.js +0 -61
  180. package/dist/src/generators/remote/lib/setup-tspath-for-remote.d.ts +0 -3
  181. package/dist/src/generators/remote/lib/setup-tspath-for-remote.js +0 -14
  182. package/dist/src/generators/remote/lib/update-host-with-remote.d.ts +0 -2
  183. package/dist/src/generators/remote/lib/update-host-with-remote.js +0 -79
  184. package/dist/src/generators/remote/remote.d.ts +0 -6
  185. package/dist/src/generators/remote/remote.js +0 -201
  186. package/dist/src/generators/remote/schema.d.ts +0 -39
  187. package/dist/src/generators/remote/schema.json +0 -173
  188. package/dist/src/generators/setup-ssr/files/server.ts__tmpl__ +0 -28
  189. package/dist/src/generators/setup-ssr/files/src/main.server.tsx__tmpl__ +0 -47
  190. package/dist/src/generators/setup-ssr/files/tsconfig.server.json__tmpl__ +0 -17
  191. package/dist/src/generators/setup-ssr/schema.d.ts +0 -8
  192. package/dist/src/generators/setup-ssr/schema.json +0 -54
  193. package/dist/src/generators/setup-ssr/setup-ssr.d.ts +0 -4
  194. package/dist/src/generators/setup-ssr/setup-ssr.js +0 -198
  195. package/dist/src/module-federation/ast-utils.d.ts +0 -8
  196. package/dist/src/module-federation/ast-utils.js +0 -101
  197. package/dist/src/rules/update-module-federation-project.d.ts +0 -11
  198. package/dist/src/rules/update-module-federation-project.js +0 -72
  199. package/dist/src/utils/add-mf-env-to-inputs.d.ts +0 -2
  200. package/dist/src/utils/add-mf-env-to-inputs.js +0 -29
  201. package/dist/src/utils/module-federation-deprecation.d.ts +0 -12
  202. package/dist/src/utils/module-federation-deprecation.js +0 -46
  203. package/dist/src/utils/normalize-remote.d.ts +0 -8
  204. package/dist/src/utils/normalize-remote.js +0 -31
@@ -1,45 +0,0 @@
1
- import { NxAppRspackPlugin } from '@nx/rspack/app-plugin.js';
2
- import { NxReactRspackPlugin } from '@nx/rspack/react-plugin.js';
3
- import { NxModuleFederationPlugin, NxModuleFederationDevServerPlugin } from '@nx/module-federation/rspack';
4
- import { join } from 'path';
5
-
6
- import config from './module-federation.config';
7
-
8
- export default {
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,19 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "types": [
6
- "node",
7
- "@nx/react/typings/cssmodule.d.ts",
8
- "@nx/react/typings/image.d.ts"
9
- ]
10
- },
11
- "include": [
12
- "src/**/*.js",
13
- "src/**/*.jsx",
14
- "src/**/*.ts",
15
- "src/**/*.tsx",
16
- "rspack.config.ts",
17
- "rspack.prod.config.ts"
18
- ]
19
- }
@@ -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,17 +0,0 @@
1
- const { composePlugins, withNx } = require('@nx/webpack');
2
- const { withReact } = require('@nx/react');
3
- const { withModuleFederation } = require('@nx/module-federation/webpack');
4
-
5
- const baseConfig = require('./module-federation.config');
6
-
7
- const config = {
8
- ...baseConfig,
9
- };
10
-
11
- // Nx plugins for webpack to build config object from Nx options and context.
12
- /**
13
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support Module Federation
14
- * The DTS Plugin can be enabled by setting dts: true
15
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
16
- */
17
- module.exports = composePlugins(withNx(), withReact(), withModuleFederation(config, { dts: false }));
@@ -1 +0,0 @@
1
- module.exports = require('./webpack.config');
@@ -1,9 +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': '<%= appProjectRoot %>/src/remote-entry.<%= js ? 'js' : 'ts' %>',
8
- },
9
- };
@@ -1,45 +0,0 @@
1
- import * as path from 'path';
2
- import express from 'express';
3
- import cors from 'cors';
4
-
5
- import { handleRequest } from './src/main.server';
6
-
7
- const port = process.env['PORT'] || <%= port %>;
8
- const app = express();
9
-
10
- const browserDist = path.join(process.cwd(), '<%= browserBuildOutputPath %>');
11
- const serverDist = path.join(process.cwd(), '<%= serverBuildOutputPath %>');
12
- const indexPath = path.join(browserDist, 'index.html');
13
-
14
- app.use(cors());
15
-
16
- // Client-side static bundles
17
- app.get(
18
- '*.*',
19
- express.static(browserDist, {
20
- maxAge: '1y',
21
- })
22
- );
23
-
24
- // Static bundles for server-side module federation
25
- app.use('/server',
26
- express.static(serverDist, {
27
- maxAge: '1y'
28
- })
29
- );
30
-
31
- app.use('*', handleRequest(indexPath));
32
-
33
- const server = app.listen(port, () => {
34
- console.log(`Express server listening on http://localhost:${port}`);
35
-
36
- /**
37
- * DO NOT REMOVE IF USING @nx/react:module-federation-dev-ssr executor
38
- * to serve your Host application with this Remote application.
39
- * This message allows Nx to determine when the Remote is ready to be
40
- * consumed by the Host.
41
- */
42
- process.send?.('nx.server.ready');
43
- });
44
-
45
- server.on('error', console.error);
@@ -1,17 +0,0 @@
1
- const {composePlugins, withNx} = require('@nx/webpack');
2
- const {withReact} = require('@nx/react');
3
- const {withModuleFederationForSSR} = require('@nx/module-federation/webpack');
4
-
5
- const baseConfig = require("./module-federation.server.config");
6
-
7
- const defaultConfig = {
8
- ...baseConfig,
9
- };
10
-
11
- // Nx plugins for webpack to build config object from Nx options and context.
12
- /**
13
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support Module Federation
14
- * The DTS Plugin can be enabled by setting dts: true
15
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
16
- */
17
- module.exports = composePlugins(withNx(), withReact({ssr: true}), withModuleFederationForSSR(defaultConfig, { dts: false }));
@@ -1,13 +0,0 @@
1
- import type {ModuleFederationConfig} from '@nx/module-federation';
2
-
3
- const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- exposes: {
6
- './Module': '<%= appProjectRoot %>/src/remote-entry.<%= js ? 'js' : 'ts' %>',
7
- },
8
- };
9
-
10
- /**
11
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
12
- **/
13
- export default config;
@@ -1,45 +0,0 @@
1
- import * as path from 'path';
2
- import express from 'express';
3
- import cors from 'cors';
4
-
5
- import { handleRequest } from './src/main.server';
6
-
7
- const port = process.env['PORT'] || <%= port %>;
8
- const app = express();
9
-
10
- const browserDist = path.join(process.cwd(), '<%= browserBuildOutputPath %>');
11
- const serverDist = path.join(process.cwd(), '<%= serverBuildOutputPath %>');
12
- const indexPath = path.join(browserDist, 'index.html');
13
-
14
- app.use(cors());
15
-
16
- // Client-side static bundles
17
- app.get(
18
- '*.*',
19
- express.static(browserDist, {
20
- maxAge: '1y',
21
- })
22
- );
23
-
24
- // Static bundles for server-side module federation
25
- app.use('/server',
26
- express.static(serverDist, {
27
- maxAge: '1y'
28
- })
29
- );
30
-
31
- app.use('*', handleRequest(indexPath));
32
-
33
- const server = app.listen(port, () => {
34
- console.log(`Express server listening on http://localhost:${port}`);
35
-
36
- /**
37
- * DO NOT REMOVE IF USING @nx/react:module-federation-dev-ssr executor
38
- * to serve your Host application with this Remote application.
39
- * This message allows Nx to determine when the Remote is ready to be
40
- * consumed by the Host.
41
- */
42
- process.send?.('nx.server.ready');
43
- });
44
-
45
- server.on('error', console.error);
@@ -1,19 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "types": [
6
- "node",
7
- "@nx/react/typings/cssmodule.d.ts",
8
- "@nx/react/typings/image.d.ts"
9
- ]
10
- },
11
- "include": [
12
- "src/**/*.js",
13
- "src/**/*.jsx",
14
- "src/**/*.ts",
15
- "src/**/*.tsx",
16
- "webpack.config.ts",
17
- "webpack.prod.config.ts"
18
- ]
19
- }
@@ -1,17 +0,0 @@
1
- import {composePlugins, withNx} from '@nx/webpack';
2
- import {withReact} from '@nx/react';
3
- import {withModuleFederationForSSR} from '@nx/module-federation/webpack';
4
-
5
- import baseConfig from "./module-federation.server.config";
6
-
7
- const defaultConfig = {
8
- ...baseConfig,
9
- };
10
-
11
- // Nx plugins for webpack to build config object from Nx options and context.
12
- /**
13
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support Module Federation
14
- * The DTS Plugin can be enabled by setting dts: true
15
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
16
- */
17
- export default composePlugins(withNx(), withReact({ssr: true}), withModuleFederationForSSR(defaultConfig, { dts: false }));
@@ -1,16 +0,0 @@
1
- import type {ModuleFederationConfig} from '@nx/module-federation';
2
-
3
- const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- <%_ if (dynamic) { _%>
6
- library: { type: 'var', name: '<%= projectName %>'},
7
- <%_ } _%>
8
- exposes: {
9
- './Module': './src/remote-entry.<%= js ? 'js' : 'ts' %>',
10
- },
11
- };
12
-
13
- /**
14
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
15
- **/
16
- export default config;
@@ -1,19 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "types": [
6
- "node",
7
- "@nx/react/typings/cssmodule.d.ts",
8
- "@nx/react/typings/image.d.ts"
9
- ]
10
- },
11
- "include": [
12
- "src/**/*.js",
13
- "src/**/*.jsx",
14
- "src/**/*.ts",
15
- "src/**/*.tsx",
16
- "webpack.config.ts",
17
- "webpack.prod.config.ts"
18
- ]
19
- }
@@ -1 +0,0 @@
1
- export default require('./webpack.config');
@@ -1,17 +0,0 @@
1
- import {composePlugins, withNx} from '@nx/webpack';
2
- import {withReact} from '@nx/react';
3
- import {withModuleFederation} from '@nx/module-federation/webpack';
4
-
5
- import baseConfig from './module-federation.config';
6
-
7
- const config = {
8
- ...baseConfig,
9
- };
10
-
11
- // Nx plugins for webpack to build config object from Nx options and context.
12
- /**
13
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support Module Federation
14
- * The DTS Plugin can be enabled by setting dts: true
15
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
16
- */
17
- export default composePlugins(withNx(), withReact(), withModuleFederation(config, { dts: false }));
@@ -1,2 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- export declare function addRemoteToDynamicHost(tree: Tree, remoteName: string, remotePort: number, pathToMfManifest: string): void;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addRemoteToDynamicHost = addRemoteToDynamicHost;
4
- function addRemoteToDynamicHost(tree, remoteName, remotePort, pathToMfManifest) {
5
- if (tree.exists(pathToMfManifest)) {
6
- const current = tree.read(pathToMfManifest, 'utf8');
7
- tree.write(pathToMfManifest, JSON.stringify({
8
- ...JSON.parse(current),
9
- [remoteName]: `http://localhost:${remotePort}`,
10
- }));
11
- }
12
- }
@@ -1,3 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../../application/schema';
3
- export declare function setupPackageJsonExportsForRemote(tree: Tree, options: NormalizedSchema): void;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupPackageJsonExportsForRemote = setupPackageJsonExportsForRemote;
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
- function setupPackageJsonExportsForRemote(tree, options) {
8
- const project = (0, devkit_1.readProjectConfiguration)(tree, options.projectName);
9
- const packageJsonPath = (0, devkit_1.joinPathFragments)(project.root, 'package.json');
10
- if (!tree.exists(packageJsonPath)) {
11
- throw new Error(`package.json not found at ${packageJsonPath}. ` +
12
- `TypeScript solution setup requires package.json for all projects.`);
13
- }
14
- const exportPath = (0, maybe_js_1.maybeJs)(options, './src/remote-entry.ts');
15
- const customCondition = (0, internal_1.getDefinedCustomConditionName)(tree);
16
- (0, devkit_1.updateJson)(tree, packageJsonPath, (json) => {
17
- json.exports = {
18
- ...json.exports,
19
- './Module': {
20
- [customCondition]: exportPath,
21
- types: exportPath,
22
- import: exportPath,
23
- default: exportPath,
24
- },
25
- };
26
- // Set types for IDE support (no main needed - this is an app, not a library)
27
- json.types = exportPath;
28
- return json;
29
- });
30
- }
@@ -1,4 +0,0 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../../application/schema';
3
- import type { Schema } from '../schema';
4
- export declare function setupSsrForRemote(tree: Tree, options: NormalizedSchema<Schema>, appName: string): Promise<GeneratorCallback>;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupSsrForRemote = setupSsrForRemote;
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 setupSsrForRemote(tree, options, appName) {
8
- const tasks = [];
9
- const project = (0, devkit_1.readProjectConfiguration)(tree, appName);
10
- const pathToModuleFederationSsrFiles = options.typescriptConfiguration
11
- ? `${options.bundler === 'rspack' ? 'rspack-' : 'webpack-'}module-federation-ssr-ts`
12
- : `${options.bundler === 'rspack' ? 'rspack-' : 'webpack-'}module-federation-ssr`;
13
- const templateVariables = options.bundler === 'rspack'
14
- ? {
15
- ...(0, create_application_files_1.getDefaultTemplateVariables)(tree, options),
16
- rspackPluginOptions: {
17
- ...(0, create_application_files_1.createNxRspackPluginOptions)(options, (0, devkit_1.offsetFromRoot)(options.appProjectRoot), false),
18
- mainServer: `./server.ts`,
19
- },
20
- port: Number(options?.port) || 4200,
21
- appName,
22
- }
23
- : {
24
- ...options,
25
- port: Number(options?.port) || 4200,
26
- appName,
27
- tmpl: '',
28
- browserBuildOutputPath: project.targets.build?.options?.outputPath,
29
- serverBuildOutputPath: project.targets.server?.options?.outputPath,
30
- };
31
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, `../files/${pathToModuleFederationSsrFiles}`), project.root, templateVariables);
32
- // For hosts to use when running remotes in static mode.
33
- const originalOutputPath = (project.targets.build?.options?.outputPath ??
34
- options.isUsingTsSolutionConfig)
35
- ? 'dist'
36
- : (0, devkit_1.joinPathFragments)((0, devkit_1.offsetFromRoot)(options.appProjectRoot), 'dist', options.appProjectRoot != '.'
37
- ? options.appProjectRoot
38
- : options.projectName);
39
- const serverOptions = project.targets.server?.options;
40
- const serverOutputPath = serverOptions?.outputPath ??
41
- (0, devkit_1.joinPathFragments)(originalOutputPath, 'server');
42
- const serverOutputName = serverOptions?.outputFileName ?? 'main.js';
43
- project.targets['serve-static'] = {
44
- dependsOn: ['build', 'server'],
45
- executor: 'nx:run-commands',
46
- defaultConfiguration: 'development',
47
- options: {
48
- command: `PORT=${options.port ?? 4200} node ${(0, devkit_1.joinPathFragments)(serverOutputPath, serverOutputName)}`,
49
- },
50
- };
51
- (0, devkit_1.updateProjectConfiguration)(tree, appName, project);
52
- const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
53
- '@module-federation/node': versions_1.moduleFederationNodeVersion,
54
- cors: versions_1.corsVersion,
55
- isbot: versions_1.isbotVersion,
56
- express: versions_1.expressVersion,
57
- '@types/express': versions_1.typesExpressVersion,
58
- }, {}, undefined, true);
59
- tasks.push(installTask);
60
- return (0, devkit_1.runTasksInSerial)(...tasks);
61
- }
@@ -1,3 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../../application/schema';
3
- export declare function setupTspathForRemote(tree: Tree, options: NormalizedSchema): void;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupTspathForRemote = setupTspathForRemote;
4
- const devkit_1 = require("@nx/devkit");
5
- const js_1 = require("@nx/js");
6
- const maybe_js_1 = require("../../../utils/maybe-js");
7
- const versions_1 = require("../../../utils/versions");
8
- function setupTspathForRemote(tree, options) {
9
- const { normalizeProjectName } = (0, devkit_1.ensurePackage)('@nx/module-federation', versions_1.nxVersion);
10
- const project = (0, devkit_1.readProjectConfiguration)(tree, options.projectName);
11
- const exportPath = (0, maybe_js_1.maybeJs)(options, './src/remote-entry.ts');
12
- const exportName = 'Module';
13
- (0, js_1.addTsConfigPath)(tree, `${normalizeProjectName(options.projectName)}/${exportName}`, [(0, devkit_1.joinPathFragments)(project.root, exportPath)]);
14
- }
@@ -1,2 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- export declare function updateHostWithRemote(host: Tree, hostName: string, remoteName: string): void;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateHostWithRemote = updateHostWithRemote;
4
- const devkit_1 = require("@nx/devkit");
5
- const internal_1 = require("@nx/js/internal");
6
- const ast_utils_1 = require("../../../module-federation/ast-utils");
7
- let tsModule;
8
- function updateHostWithRemote(host, hostName, remoteName) {
9
- if (!tsModule) {
10
- tsModule = (0, internal_1.ensureTypescript)();
11
- }
12
- const hostConfig = (0, devkit_1.readProjectConfiguration)(host, hostName);
13
- let moduleFederationConfigPath = (0, devkit_1.joinPathFragments)(hostConfig.root, 'module-federation.config.js');
14
- if (!host.exists(moduleFederationConfigPath)) {
15
- moduleFederationConfigPath = (0, devkit_1.joinPathFragments)(hostConfig.root, 'module-federation.config.ts');
16
- }
17
- const appComponentPath = findAppComponentPath(host, (0, internal_1.getProjectSourceRoot)(hostConfig, host));
18
- if (host.exists(moduleFederationConfigPath)) {
19
- // find the host project path
20
- // Update remotes inside ${host_path}/src/remotes.d.ts
21
- let sourceCode = host.read(moduleFederationConfigPath).toString();
22
- const source = tsModule.createSourceFile(moduleFederationConfigPath, sourceCode, tsModule.ScriptTarget.Latest, true);
23
- host.write(moduleFederationConfigPath, (0, devkit_1.applyChangesToString)(sourceCode, (0, ast_utils_1.addRemoteToConfig)(source, remoteName)));
24
- }
25
- else {
26
- // TODO(jack): Point to the nx.dev guide when ready.
27
- devkit_1.logger.warn(`Could not find configuration at ${moduleFederationConfigPath}. Did you generate this project with "@nx/react:host" or "@nx/react:consumer"?`);
28
- }
29
- if (host.exists(appComponentPath)) {
30
- let sourceCode = host.read(appComponentPath).toString();
31
- const source = tsModule.createSourceFile(moduleFederationConfigPath, sourceCode, tsModule.ScriptTarget.Latest, true, tsModule.ScriptKind.TSX);
32
- host.write(appComponentPath, (0, devkit_1.applyChangesToString)(sourceCode, (0, ast_utils_1.addRemoteRoute)(source, (0, devkit_1.names)(remoteName))));
33
- }
34
- else {
35
- devkit_1.logger.warn(`Could not find app component at ${appComponentPath}. Did you generate this project with "@nx/react:host" or "@nx/react:consumer"?`);
36
- }
37
- // Add remote as devDependency in TS solution setup
38
- if ((0, internal_1.isUsingTsSolutionSetup)(host)) {
39
- addRemoteAsHostDependency(host, hostName, remoteName);
40
- }
41
- }
42
- function findAppComponentPath(host, sourceRoot) {
43
- const locations = [
44
- 'app/app.tsx',
45
- 'app/App.tsx',
46
- 'app/app.js',
47
- 'app/app.jsx',
48
- 'app/App.js',
49
- 'app/App.jsx',
50
- 'app.tsx',
51
- 'App.tsx',
52
- 'app.js',
53
- 'App.js',
54
- 'app.jsx',
55
- 'App.jsx',
56
- ];
57
- for (const loc of locations) {
58
- if (host.exists((0, devkit_1.joinPathFragments)(sourceRoot, loc))) {
59
- return (0, devkit_1.joinPathFragments)(sourceRoot, loc);
60
- }
61
- }
62
- }
63
- function addRemoteAsHostDependency(tree, hostName, remoteName) {
64
- const hostConfig = (0, devkit_1.readProjectConfiguration)(tree, hostName);
65
- const hostPackageJsonPath = (0, devkit_1.joinPathFragments)(hostConfig.root, 'package.json');
66
- if (!tree.exists(hostPackageJsonPath)) {
67
- throw new Error(`Host package.json not found at ${hostPackageJsonPath}. ` +
68
- `TypeScript solution setup requires package.json for all projects.`);
69
- }
70
- const packageManager = (0, devkit_1.detectPackageManager)(tree.root);
71
- // npm doesn't support workspace: protocol, use * instead
72
- const versionSpec = packageManager === 'npm' ? '*' : 'workspace:*';
73
- (0, devkit_1.updateJson)(tree, hostPackageJsonPath, (json) => {
74
- json.devDependencies ??= {};
75
- // Use simple remote name directly to match module-federation.config.ts
76
- json.devDependencies[remoteName] = versionSpec;
77
- return json;
78
- });
79
- }
@@ -1,6 +0,0 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../application/schema';
3
- import { Schema } from './schema';
4
- export declare function addModuleFederationFiles(host: Tree, options: NormalizedSchema<Schema>): void;
5
- export declare function remoteGenerator(host: Tree, schema: Schema): Promise<GeneratorCallback>;
6
- export default remoteGenerator;