@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,41 +0,0 @@
1
- import * as React from 'react';
2
- <%_ if (!minimal) { _%>
3
- import NxWelcome from "./nx-welcome";
4
- <%_ } _%>
5
- import { Link, Route, Routes } from 'react-router-dom';
6
- <%_ if (dynamic && remotes.length > 0) { _%>
7
- import { loadRemote } from '@module-federation/enhanced/runtime';
8
- <%_ } _%>
9
-
10
- <%_ if (remotes.length > 0) {
11
- remotes.forEach(function(r) { _%>
12
- <%_ if (dynamic) { _%>
13
- const <%= r.className %> = React.lazy(() => loadRemote('<%= r.fileName %>/Module') as any)
14
- <%_ } else { _%>
15
- const <%= r.className %> = React.lazy(() => import('<%= r.fileName %>/Module'));
16
- <%_ } _%>
17
- <%_ }); _%>
18
- <%_ } _%>
19
-
20
- export function App() {
21
- return (
22
- <React.Suspense fallback={null}>
23
- <ul>
24
- <li><Link to="/">Home</Link></li>
25
- <%_ remotes.forEach(function(r) { _%>
26
- <li><Link to="/<%=r.fileName%>"><%=r.className%></Link></li>
27
- <%_ }); _%>
28
- </ul>
29
- <Routes>
30
- <%_ if (!minimal) { _%>
31
- <Route path="/" element={<NxWelcome title="<%= projectName %>"/>} />
32
- <%_ } _%>
33
- <%_ remotes.forEach(function(r) { _%>
34
- <Route path="/<%=r.fileName%>" element={<<%= r.className %>/>} />
35
- <%_ }); _%>
36
- </Routes>
37
- </React.Suspense>
38
- );
39
- }
40
-
41
- export default App;
@@ -1,13 +0,0 @@
1
- <%_ if (dynamic) { _%>
2
- import { registerRemotes } from '@module-federation/enhanced/runtime';
3
-
4
- fetch('/assets/module-federation.manifest.json')
5
- .then((res) => res.json())
6
- .then((remotes: Record<string, string>) =>
7
- Object.entries(remotes).map(([name, entry]) => ({ name, entry }))
8
- )
9
- .then((remotes) => registerRemotes(remotes))
10
- .then(() => import('./bootstrap').catch(err => console.error(err)));
11
- <%_ } else { _%>
12
- import('./bootstrap').catch(err => console.error(err));
13
- <%_ } _%>
@@ -1,42 +0,0 @@
1
- import * as React from 'react';
2
- <%_ if (!minimal) { _%>
3
- import NxWelcome from "./nx-welcome";
4
- <%_ } _%>
5
- import { Link, Route, Routes } from 'react-router-dom';
6
-
7
- <%_ if (dynamic && remotes.length > 0) { _%>
8
- import { loadRemote } from '@module-federation/enhanced/runtime';
9
- <%_ } _%>
10
-
11
- <%_ if (remotes.length > 0) {
12
- remotes.forEach(function(r) { _%>
13
- <%_ if (dynamic) { _%>
14
- const <%= r.className %> = React.lazy(() => loadRemote('<%= r.fileName %>/Module') as any)
15
- <%_ } else { _%>
16
- const <%= r.className %> = React.lazy(() => import('<%= r.fileName %>/Module'));
17
- <%_ } _%>
18
- <%_ }); _%>
19
- <%_ } _%>
20
-
21
- export function App() {
22
- return (
23
- <React.Suspense fallback={null}>
24
- <ul>
25
- <li><Link to="/">Home</Link></li>
26
- <%_ remotes.forEach(function(r) { _%>
27
- <li><Link to="/<%=r.fileName%>"><%=r.className%></Link></li>
28
- <%_ }); _%>
29
- </ul>
30
- <Routes>
31
- <%_ if (!minimal) { _%>
32
- <Route path="/" element={<NxWelcome title="<%= projectName %>"/>} />
33
- <%_ } _%>
34
- <%_ remotes.forEach(function(r) { _%>
35
- <Route path="/<%=r.fileName%>" element={<<%= r.className %>/>} />
36
- <%_ }); _%>
37
- </Routes>
38
- </React.Suspense>
39
- );
40
- }
41
-
42
- export default App;
@@ -1,13 +0,0 @@
1
- <%_ if (dynamic) { _%>
2
- import { init } from '@module-federation/enhanced/runtime';
3
-
4
- fetch('/assets/module-federation.manifest.json')
5
- .then((res) => res.json())
6
- .then((remotes: Record<string, string>) =>
7
- Object.entries(remotes).map(([name, entry]) => ({ name, entry }))
8
- )
9
- .then((remotes) => init({ name: '<%= projectName %>', remotes }))
10
- .then(() => import('./bootstrap').catch(err => console.error(err)));
11
- <%_ } else { _%>
12
- import('./bootstrap').catch(err => console.error(err));
13
- <%_ } _%>
@@ -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,24 +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
- /**
7
- * To use a remote that does not exist in your current Nx Workspace
8
- * You can use the tuple-syntax to define your remote
9
- *
10
- * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
11
- *
12
- * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
13
- * following content:
14
- *
15
- * declare module 'my-external-remote';
16
- *
17
- */
18
- remotes: [
19
- <%_ if (static) {
20
- remotes.forEach(function(r) { _%>
21
- "<%= r.fileName %>",
22
- <%_ }); } _%>
23
- ],
24
- };
@@ -1,42 +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
- historyApiFallback: {
18
- index: '/index.html',
19
- disableDotRule: true,
20
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
21
- },
22
- },
23
- plugins: [
24
- new NxAppRspackPlugin({
25
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
26
- main: '<%= rspackPluginOptions.main %>',
27
- index: '<%= rspackPluginOptions.index %>',
28
- baseHref: '<%= rspackPluginOptions.baseHref %>',
29
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
30
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
31
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
32
- optimization: process.env['NODE_ENV'] === 'production',
33
- }),
34
- new NxReactRspackPlugin({
35
- // Uncomment this line if you don't want to use SVGR
36
- // See: https://react-svgr.com/
37
- // svgr: false
38
- }),
39
- new NxModuleFederationPlugin({ config }, { dts: false }),
40
- new NxModuleFederationDevServerPlugin({ config }),
41
- ],
42
- };
@@ -1,66 +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 baseConfig = require('./module-federation.config');
7
-
8
- const prodConfig = {
9
- ...baseConfig,
10
- /*
11
- * Remote overrides for production.
12
- * Each entry is a pair of a unique name and the URL where it is deployed.
13
- *
14
- * e.g.
15
- * remotes: [
16
- * ['app1', 'http://app1.example.com'],
17
- * ['app2', 'http://app2.example.com'],
18
- * ]
19
- *
20
- * You can also use a full path to the remoteEntry.js file if desired.
21
- *
22
- * remotes: [
23
- * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
24
- * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
25
- * ]
26
- */
27
- remotes: [
28
- <%_ remotes.forEach(function(r) { _%>
29
- ['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],
30
- <%_ }); _%>
31
- ],
32
- };
33
-
34
- module.exports = {
35
- output: {
36
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>'),
37
- publicPath: 'auto'
38
- },
39
- devServer: {
40
- port: <%= port %>,
41
- historyApiFallback: {
42
- index: '/index.html',
43
- disableDotRule: true,
44
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
45
- },
46
- },
47
- plugins: [
48
- new NxAppRspackPlugin({
49
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
50
- main: '<%= rspackPluginOptions.main %>',
51
- index: '<%= rspackPluginOptions.index %>',
52
- baseHref: '<%= rspackPluginOptions.baseHref %>',
53
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
54
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
55
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
56
- optimization: process.env['NODE_ENV'] === 'production',
57
- }),
58
- new NxReactRspackPlugin({
59
- // Uncomment this line if you don't want to use SVGR
60
- // See: https://react-svgr.com/
61
- // svgr: false
62
- }),
63
- new NxModuleFederationPlugin({ config: prodConfig }, { dts: false }),
64
- new NxModuleFederationDevServerPlugin({ config: prodConfig }),
65
- ],
66
- };
@@ -1,27 +0,0 @@
1
- // @ts-check
2
-
3
- /**
4
- * @type {import('@nx/module-federation').ModuleFederationConfig}
5
- **/
6
- const moduleFederationConfig = {
7
- name: '<%= projectName %>',
8
- remotes: [
9
- <%_ if (static) {
10
- remotes.forEach(function(r) { _%>
11
- "<%= r.fileName %>",
12
- <%_ });
13
- }
14
- _%>
15
- ],
16
- shared: (libraryName, libraryConfig) => {
17
- return {
18
- ...libraryConfig,
19
- eager: true
20
- }
21
- },
22
- };
23
-
24
- /**
25
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
26
- **/
27
- module.exports = moduleFederationConfig;
@@ -1,68 +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
- historyApiFallback: {
20
- index: '/index.html',
21
- disableDotRule: true,
22
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
23
- },
24
- devMiddleware: {
25
- writeToDisk: (file: string) => !file.includes('.hot-update.'),
26
- },
27
- },
28
- plugins: [
29
- new NxAppRspackPlugin({
30
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
31
- main: '<%= rspackPluginOptions.main %>',
32
- index: '<%= rspackPluginOptions.index %>',
33
- baseHref: '<%= rspackPluginOptions.baseHref %>',
34
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
35
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
36
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
37
- optimization: process.env['NODE_ENV'] === 'production',
38
- }),
39
- new NxReactRspackPlugin({
40
- // Uncomment this line if you don't want to use SVGR
41
- // See: https://react-svgr.com/
42
- // svgr: false
43
- }),
44
- new NxModuleFederationPlugin({ config: browserMfConfig }, { dts: false }),
45
- ],
46
- };
47
-
48
- const serverRspackConfig = {
49
- name: 'server',
50
- target: 'async-node',
51
- output: {
52
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
53
- filename: 'server.js'
54
- },
55
- plugins: [
56
- new NxAppRspackPlugin({
57
- outputPath: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
58
- outputFileName: 'server.js',
59
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
60
- main: '<%= rspackPluginOptions.mainServer %>',
61
- baseHref: '<%= rspackPluginOptions.baseHref %>',
62
- }),
63
- new NxModuleFederationPlugin({ config: serverMfConfig, isServer: true }, { dts: false }),
64
- new NxModuleFederationSSRDevServerPlugin({ config: serverMfConfig }),
65
- ],
66
- };
67
-
68
- module.exports = [browserRspackConfig, serverRspackConfig];
@@ -1,28 +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(), '<%= rspackPluginOptions.outputPath %>', 'browser');
11
- const indexPath = path.join(browserDist, 'index.html');
12
-
13
- app.use(cors());
14
-
15
- app.get(
16
- '*.*',
17
- express.static(browserDist, {
18
- maxAge: '1y',
19
- })
20
- );
21
-
22
- app.use('*', handleRequest(indexPath));
23
-
24
- const server = app.listen(port, () => {
25
- console.log(`Express server listening on http://localhost:${port}`);
26
- });
27
-
28
- server.on('error', console.error);
@@ -1,49 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- import * as fs from 'fs';
3
- import * as ReactDOMServer from 'react-dom/server';
4
- import isbot from 'isbot'
5
-
6
- import App from './app/app';
7
-
8
- import { StaticRouter } from 'react-router-dom/server';
9
-
10
-
11
- let indexHtml: null | string = null;
12
-
13
- export function handleRequest(indexPath: string) {
14
- return function render(req: Request, res: Response) {
15
- let didError = false;
16
-
17
- if (!indexHtml) {
18
- indexHtml = fs.readFileSync(indexPath).toString();
19
- }
20
-
21
- const [htmlStart, htmlEnd] = indexHtml.split(`<div id="root"></div>`);
22
-
23
- // For bots (e.g. search engines), the content will not be streamed but render all at once.
24
- // For users, content should be streamed to the user as they are ready.
25
- const callbackName = isbot(req.headers['user-agent']) ? 'onAllReady' : 'onShellReady';
26
-
27
- const stream = ReactDOMServer.renderToPipeableStream(
28
- <StaticRouter location={req.originalUrl}><App /></StaticRouter>,
29
- {
30
- [callbackName]() {
31
- res.statusCode = didError ? 500 : 200;
32
- res.setHeader('Content-type', 'text/html; charset=utf-8');
33
- res.write(`${htmlStart}<div id="root">`);
34
- stream.pipe(res);
35
- res.write(`</div>${htmlEnd}`);
36
- },
37
- onShellError(error) {
38
- console.error(error);
39
- res.statusCode = 500;
40
- res.send('<!doctype html><h1>Server Error</h1>');
41
- },
42
- onError(error) {
43
- didError = true;
44
- console.error(error);
45
- }
46
- }
47
- );
48
- }
49
- }
@@ -1,17 +0,0 @@
1
- {
2
- "extends": "./tsconfig.app.json",
3
- "compilerOptions": {
4
- "outDir": "../../out-tsc/server",
5
- "target": "es2019",
6
- "types": [
7
- "node",
8
- "@nx/react/typings/cssmodule.d.ts",
9
- "@nx/react/typings/image.d.ts"
10
- ]
11
- },
12
- "include": [
13
- "src/remotes.d.ts",
14
- "src/main.server.tsx",
15
- "server.ts"
16
- ]
17
- }
@@ -1,22 +0,0 @@
1
- import type { ModuleFederationConfig } from '@nx/module-federation';
2
-
3
- const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- remotes: [
6
- <%_ if (static) {
7
- remotes.forEach(function(r) { _%>
8
- "<%= r.fileName %>",
9
- <%_ }); } _%>
10
- ],
11
- shared: (libraryName, libraryConfig) => {
12
- return {
13
- ...libraryConfig,
14
- eager: true
15
- }
16
- },
17
- };
18
-
19
- /**
20
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
21
- **/
22
- export default config;
@@ -1,68 +0,0 @@
1
- import { NxAppRspackPlugin } from '@nx/rspack/app-plugin.js';
2
- import { NxReactRspackPlugin } from '@nx/rspack/react-plugin.js';
3
- import { NxModuleFederationPlugin, NxModuleFederationSSRDevServerPlugin } from '@nx/module-federation/rspack';
4
- import { join } from 'path';
5
-
6
- import browserMfConfig from './module-federation.config';
7
- import serverMfConfig from './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
- historyApiFallback: {
20
- index: '/index.html',
21
- disableDotRule: true,
22
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
23
- },
24
- devMiddleware: {
25
- writeToDisk: (file: string) => !file.includes('.hot-update.'),
26
- },
27
- },
28
- plugins: [
29
- new NxAppRspackPlugin({
30
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
31
- main: '<%= rspackPluginOptions.main %>',
32
- index: '<%= rspackPluginOptions.index %>',
33
- baseHref: '<%= rspackPluginOptions.baseHref %>',
34
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
35
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
36
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
37
- optimization: process.env['NODE_ENV'] === 'production',
38
- }),
39
- new NxReactRspackPlugin({
40
- // Uncomment this line if you don't want to use SVGR
41
- // See: https://react-svgr.com/
42
- // svgr: false
43
- }),
44
- new NxModuleFederationPlugin({ config: browserMfConfig }, { dts: false }),
45
- ],
46
- };
47
-
48
- const serverRspackConfig = {
49
- name: 'server',
50
- target: 'async-node',
51
- output: {
52
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
53
- filename: 'server.js'
54
- },
55
- plugins: [
56
- new NxAppRspackPlugin({
57
- outputPath: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
58
- outputFileName: 'server.js',
59
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
60
- main: '<%= rspackPluginOptions.mainServer %>',
61
- baseHref: '<%= rspackPluginOptions.baseHref %>',
62
- }),
63
- new NxModuleFederationPlugin({ config: serverMfConfig, isServer: true }, { dts: false }),
64
- new NxModuleFederationSSRDevServerPlugin({ config: serverMfConfig }),
65
- ],
66
- };
67
-
68
- export default [browserRspackConfig, serverRspackConfig];
@@ -1,28 +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(), '<%= rspackPluginOptions.outputPath %>', 'browser');
11
- const indexPath = path.join(browserDist, 'index.html');
12
-
13
- app.use(cors());
14
-
15
- app.get(
16
- '*.*',
17
- express.static(browserDist, {
18
- maxAge: '1y',
19
- })
20
- );
21
-
22
- app.use('*', handleRequest(indexPath));
23
-
24
- const server = app.listen(port, () => {
25
- console.log(`Express server listening on http://localhost:${port}`);
26
- });
27
-
28
- server.on('error', console.error);
@@ -1,49 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- import * as fs from 'fs';
3
- import * as ReactDOMServer from 'react-dom/server';
4
- import isbot from 'isbot'
5
-
6
- import App from './app/app';
7
-
8
- import { StaticRouter } from 'react-router-dom/server';
9
-
10
-
11
- let indexHtml: null | string = null;
12
-
13
- export function handleRequest(indexPath: string) {
14
- return function render(req: Request, res: Response) {
15
- let didError = false;
16
-
17
- if (!indexHtml) {
18
- indexHtml = fs.readFileSync(indexPath).toString();
19
- }
20
-
21
- const [htmlStart, htmlEnd] = indexHtml.split(`<div id="root"></div>`);
22
-
23
- // For bots (e.g. search engines), the content will not be streamed but render all at once.
24
- // For users, content should be streamed to the user as they are ready.
25
- const callbackName = isbot(req.headers['user-agent']) ? 'onAllReady' : 'onShellReady';
26
-
27
- const stream = ReactDOMServer.renderToPipeableStream(
28
- <StaticRouter location={req.originalUrl}><App /></StaticRouter>,
29
- {
30
- [callbackName]() {
31
- res.statusCode = didError ? 500 : 200;
32
- res.setHeader('Content-type', 'text/html; charset=utf-8');
33
- res.write(`${htmlStart}<div id="root">`);
34
- stream.pipe(res);
35
- res.write(`</div>${htmlEnd}`);
36
- },
37
- onShellError(error) {
38
- console.error(error);
39
- res.statusCode = 500;
40
- res.send('<!doctype html><h1>Server Error</h1>');
41
- },
42
- onError(error) {
43
- didError = true;
44
- console.error(error);
45
- }
46
- }
47
- );
48
- }
49
- }
@@ -1,17 +0,0 @@
1
- {
2
- "extends": "./tsconfig.app.json",
3
- "compilerOptions": {
4
- "outDir": "../../out-tsc/server",
5
- "target": "es2019",
6
- "types": [
7
- "node",
8
- "@nx/react/typings/cssmodule.d.ts",
9
- "@nx/react/typings/image.d.ts"
10
- ]
11
- },
12
- "include": [
13
- "src/remotes.d.ts",
14
- "src/main.server.tsx",
15
- "server.ts"
16
- ]
17
- }