@nx/react 24.0.0-pr.37405.acdaf31 → 24.0.0-rc.0

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 (232) 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/module-federation.d.ts +6 -5
  6. package/dist/module-federation.js +29 -18
  7. package/dist/plugins/component-testing/index.js +92 -33
  8. package/dist/plugins/storybook/index.js +18 -18
  9. package/dist/plugins/with-react.d.ts +3 -7
  10. package/dist/plugins/with-react.js +5 -19
  11. package/dist/ready-check.d.ts +1 -0
  12. package/dist/ready-check.js +5 -0
  13. package/dist/src/generators/_utils/mf-dependencies.js +3 -0
  14. package/dist/src/generators/application/application.js +1 -36
  15. package/dist/src/generators/application/files/base-rspack/rspack.config.js__tmpl__ +1 -24
  16. package/dist/src/generators/application/files/base-webpack/webpack.config.js__tmpl__ +1 -26
  17. package/dist/src/generators/application/lib/add-e2e.js +11 -11
  18. package/dist/src/generators/application/lib/add-linting.js +1 -2
  19. package/dist/src/generators/application/lib/add-project.js +0 -167
  20. package/dist/src/generators/application/lib/bundlers/add-rsbuild.js +0 -1
  21. package/dist/src/generators/application/lib/bundlers/add-vite.js +0 -2
  22. package/dist/src/generators/application/lib/bundlers/add-webpack.js +0 -1
  23. package/dist/src/generators/application/lib/create-application-files.d.ts +0 -2
  24. package/dist/src/generators/application/lib/create-application-files.js +2 -11
  25. package/dist/src/generators/application/lib/normalize-options.js +0 -4
  26. package/dist/src/generators/application/schema.d.ts +0 -6
  27. package/dist/src/generators/application/schema.json +0 -6
  28. package/dist/src/generators/consumer/consumer.js +2 -0
  29. package/dist/src/generators/consumer/files/rsbuild/package.json__tmpl__ +1 -0
  30. package/dist/src/generators/consumer/files/rsbuild/rsbuild.config.ts__tmpl__ +2 -0
  31. package/dist/src/generators/consumer/files/rspack/package.json__tmpl__ +1 -0
  32. package/dist/src/generators/consumer/files/rspack/rspack.config.ts__tmpl__ +2 -0
  33. package/dist/src/generators/consumer/files/vite/package.json__tmpl__ +1 -0
  34. package/dist/src/generators/consumer/files/vite/vite.config.mts__tmpl__ +2 -0
  35. package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +4 -16
  36. package/dist/src/generators/cypress-component-configuration/lib/add-files.d.ts +1 -2
  37. package/dist/src/generators/cypress-component-configuration/lib/add-files.js +4 -2
  38. package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -1
  39. package/dist/src/generators/init/init.js +3 -5
  40. package/dist/src/generators/init/schema.d.ts +0 -1
  41. package/dist/src/generators/library/lib/add-linting.js +1 -2
  42. package/dist/src/generators/library/lib/add-rollup-build-target.js +3 -47
  43. package/dist/src/generators/library/lib/normalize-options.js +0 -4
  44. package/dist/src/generators/library/library.js +1 -4
  45. package/dist/src/generators/library/schema.d.ts +0 -5
  46. package/dist/src/generators/library/schema.json +0 -6
  47. package/dist/src/generators/provider/files/rsbuild/package.json__tmpl__ +1 -0
  48. package/dist/src/generators/provider/files/rsbuild/rsbuild.config.ts__tmpl__ +2 -0
  49. package/dist/src/generators/provider/files/rspack/package.json__tmpl__ +1 -0
  50. package/dist/src/generators/provider/files/rspack/rspack.config.ts__tmpl__ +2 -0
  51. package/dist/src/generators/provider/files/vite/package.json__tmpl__ +1 -0
  52. package/dist/src/generators/provider/files/vite/vite.config.mts__tmpl__ +2 -0
  53. package/dist/src/generators/provider/provider.js +2 -0
  54. package/dist/src/generators/stories/stories.js +0 -5
  55. package/dist/src/generators/storybook-configuration/configuration.js +1 -9
  56. package/dist/src/generators/storybook-configuration/schema.d.ts +0 -1
  57. package/dist/src/migrations/update-23-2-0/add-optional-module-federation-packages.js +2 -1
  58. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.d.ts +4 -0
  59. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.js +13 -0
  60. package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.md +40 -0
  61. package/dist/src/plugins/router-plugin-utils.d.ts +4 -0
  62. package/dist/src/plugins/router-plugin-utils.js +15 -0
  63. package/dist/src/plugins/router-plugin.d.ts +0 -1
  64. package/dist/src/plugins/router-plugin.js +35 -44
  65. package/dist/src/utils/ast-utils.d.ts +0 -1
  66. package/dist/src/utils/ast-utils.js +0 -23
  67. package/dist/src/utils/ct-utils.d.ts +0 -7
  68. package/dist/src/utils/ct-utils.js +71 -55
  69. package/dist/src/utils/deprecation.d.ts +1 -1
  70. package/dist/src/utils/deprecation.js +3 -5
  71. package/dist/src/utils/framework.js +1 -3
  72. package/dist/src/utils/react-router-serve-ready-check.d.ts +11 -0
  73. package/dist/src/utils/react-router-serve-ready-check.js +25 -0
  74. package/dist/src/utils/versions.d.ts +0 -7
  75. package/dist/src/utils/versions.js +2 -9
  76. package/executors.json +1 -17
  77. package/generators.json +0 -27
  78. package/migrations.json +6 -0
  79. package/package.json +25 -39
  80. package/dist/mf/dynamic-federation.d.ts +0 -69
  81. package/dist/mf/dynamic-federation.js +0 -141
  82. package/dist/mf/index.d.ts +0 -1
  83. package/dist/mf/index.js +0 -8
  84. package/dist/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
  85. package/dist/src/executors/module-federation-dev-server/lib/index.js +0 -5
  86. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +0 -4
  87. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -19
  88. package/dist/src/executors/module-federation-dev-server/lib/start-remotes.d.ts +0 -5
  89. package/dist/src/executors/module-federation-dev-server/lib/start-remotes.js +0 -33
  90. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -6
  91. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -80
  92. package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -19
  93. package/dist/src/executors/module-federation-dev-server/schema.json +0 -142
  94. package/dist/src/executors/module-federation-ssr-dev-server/lib/index.d.ts +0 -2
  95. package/dist/src/executors/module-federation-ssr-dev-server/lib/index.js +0 -5
  96. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -4
  97. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -23
  98. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.d.ts +0 -5
  99. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.js +0 -34
  100. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -3
  101. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -83
  102. package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -29
  103. package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -81
  104. package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +0 -12
  105. package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.js +0 -244
  106. package/dist/src/executors/module-federation-static-server/schema.d.ts +0 -3
  107. package/dist/src/executors/module-federation-static-server/schema.json +0 -16
  108. package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
  109. package/dist/src/generators/federate-module/federate-module.js +0 -67
  110. package/dist/src/generators/federate-module/lib/utils.d.ts +0 -23
  111. package/dist/src/generators/federate-module/lib/utils.js +0 -99
  112. package/dist/src/generators/federate-module/schema.d.ts +0 -15
  113. package/dist/src/generators/federate-module/schema.json +0 -89
  114. package/dist/src/generators/host/files/common/src/app/__fileName__.js__tmpl__ +0 -40
  115. package/dist/src/generators/host/files/common/src/main.js__tmpl__ +0 -13
  116. package/dist/src/generators/host/files/common/tsconfig.lint.json__tmpl__ +0 -19
  117. package/dist/src/generators/host/files/common-ts/src/app/__fileName__.tsx__tmpl__ +0 -41
  118. package/dist/src/generators/host/files/common-ts/src/main.ts__tmpl__ +0 -13
  119. package/dist/src/generators/host/files/rspack-common/src/app/__fileName__.jsx__tmpl__ +0 -42
  120. package/dist/src/generators/host/files/rspack-common/src/main.jsx__tmpl__ +0 -13
  121. package/dist/src/generators/host/files/rspack-common/tsconfig.lint.json__tmpl__ +0 -19
  122. package/dist/src/generators/host/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -24
  123. package/dist/src/generators/host/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -42
  124. package/dist/src/generators/host/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -66
  125. package/dist/src/generators/host/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -27
  126. package/dist/src/generators/host/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -68
  127. package/dist/src/generators/host/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -28
  128. package/dist/src/generators/host/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -49
  129. package/dist/src/generators/host/files/rspack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
  130. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -22
  131. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -68
  132. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
  133. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -49
  134. package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
  135. package/dist/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
  136. package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -67
  137. package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -42
  138. package/dist/src/generators/host/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -24
  139. package/dist/src/generators/host/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
  140. package/dist/src/generators/host/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -39
  141. package/dist/src/generators/host/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -19
  142. package/dist/src/generators/host/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -28
  143. package/dist/src/generators/host/files/webpack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
  144. package/dist/src/generators/host/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
  145. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -16
  146. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
  147. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
  148. package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
  149. package/dist/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
  150. package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -40
  151. package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -18
  152. package/dist/src/generators/host/host.d.ts +0 -4
  153. package/dist/src/generators/host/host.js +0 -174
  154. package/dist/src/generators/host/lib/add-module-federation-files.d.ts +0 -6
  155. package/dist/src/generators/host/lib/add-module-federation-files.js +0 -92
  156. package/dist/src/generators/host/lib/normalize-host-name.d.ts +0 -2
  157. package/dist/src/generators/host/lib/normalize-host-name.js +0 -12
  158. package/dist/src/generators/host/lib/setup-ssr-for-host.d.ts +0 -6
  159. package/dist/src/generators/host/lib/setup-ssr-for-host.js +0 -59
  160. package/dist/src/generators/host/lib/update-module-federation-e2e-project.d.ts +0 -3
  161. package/dist/src/generators/host/lib/update-module-federation-e2e-project.js +0 -19
  162. package/dist/src/generators/host/lib/update-module-federation-tsconfig.d.ts +0 -3
  163. package/dist/src/generators/host/lib/update-module-federation-tsconfig.js +0 -34
  164. package/dist/src/generators/host/schema.d.ts +0 -44
  165. package/dist/src/generators/host/schema.json +0 -173
  166. package/dist/src/generators/remote/files/common/src/main.js__tmpl__ +0 -1
  167. package/dist/src/generators/remote/files/common/src/remote-entry.js__tmpl__ +0 -1
  168. package/dist/src/generators/remote/files/common-ts/src/main.ts__tmpl__ +0 -1
  169. package/dist/src/generators/remote/files/common-ts/src/remote-entry.ts__tmpl__ +0 -1
  170. package/dist/src/generators/remote/files/rspack-common/src/main.jsx__tmpl__ +0 -1
  171. package/dist/src/generators/remote/files/rspack-common/src/remote-entry.js__tmpl__ +0 -1
  172. package/dist/src/generators/remote/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -12
  173. package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -45
  174. package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -1
  175. package/dist/src/generators/remote/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -15
  176. package/dist/src/generators/remote/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -71
  177. package/dist/src/generators/remote/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -45
  178. package/dist/src/generators/remote/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -45
  179. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -19
  180. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -71
  181. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
  182. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -45
  183. package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
  184. package/dist/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
  185. package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -1
  186. package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -45
  187. package/dist/src/generators/remote/files/rspack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
  188. package/dist/src/generators/remote/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -12
  189. package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
  190. package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -1
  191. package/dist/src/generators/remote/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -9
  192. package/dist/src/generators/remote/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -45
  193. package/dist/src/generators/remote/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
  194. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -13
  195. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
  196. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
  197. package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
  198. package/dist/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
  199. package/dist/src/generators/remote/files/webpack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
  200. package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -1
  201. package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -17
  202. package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.d.ts +0 -2
  203. package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.js +0 -12
  204. package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.d.ts +0 -3
  205. package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.js +0 -30
  206. package/dist/src/generators/remote/lib/setup-ssr-for-remote.d.ts +0 -4
  207. package/dist/src/generators/remote/lib/setup-ssr-for-remote.js +0 -61
  208. package/dist/src/generators/remote/lib/setup-tspath-for-remote.d.ts +0 -3
  209. package/dist/src/generators/remote/lib/setup-tspath-for-remote.js +0 -14
  210. package/dist/src/generators/remote/lib/update-host-with-remote.d.ts +0 -2
  211. package/dist/src/generators/remote/lib/update-host-with-remote.js +0 -79
  212. package/dist/src/generators/remote/remote.d.ts +0 -6
  213. package/dist/src/generators/remote/remote.js +0 -201
  214. package/dist/src/generators/remote/schema.d.ts +0 -39
  215. package/dist/src/generators/remote/schema.json +0 -173
  216. package/dist/src/generators/setup-ssr/files/server.ts__tmpl__ +0 -28
  217. package/dist/src/generators/setup-ssr/files/src/main.server.tsx__tmpl__ +0 -47
  218. package/dist/src/generators/setup-ssr/files/tsconfig.server.json__tmpl__ +0 -17
  219. package/dist/src/generators/setup-ssr/schema.d.ts +0 -8
  220. package/dist/src/generators/setup-ssr/schema.json +0 -54
  221. package/dist/src/generators/setup-ssr/setup-ssr.d.ts +0 -4
  222. package/dist/src/generators/setup-ssr/setup-ssr.js +0 -198
  223. package/dist/src/module-federation/ast-utils.d.ts +0 -8
  224. package/dist/src/module-federation/ast-utils.js +0 -101
  225. package/dist/src/rules/update-module-federation-project.d.ts +0 -11
  226. package/dist/src/rules/update-module-federation-project.js +0 -72
  227. package/dist/src/utils/add-mf-env-to-inputs.d.ts +0 -2
  228. package/dist/src/utils/add-mf-env-to-inputs.js +0 -29
  229. package/dist/src/utils/module-federation-deprecation.d.ts +0 -12
  230. package/dist/src/utils/module-federation-deprecation.js +0 -46
  231. package/dist/src/utils/normalize-remote.d.ts +0 -8
  232. package/dist/src/utils/normalize-remote.js +0 -31
@@ -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
- }
@@ -1,28 +0,0 @@
1
- import type { ModuleFederationConfig } from '@nx/module-federation';
2
-
3
- const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- /**
6
- * To use a remote that does not exist in your current Nx Workspace
7
- * You can use the tuple-syntax to define your remote
8
- *
9
- * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
10
- *
11
- * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
12
- * following content:
13
- *
14
- * declare module 'my-external-remote';
15
- *
16
- */
17
- remotes: [
18
- <%_ if (static) {
19
- remotes.forEach(function(r) { _%>
20
- "<%= r.fileName %>",
21
- <%_ }); } _%>
22
- ],
23
- };
24
-
25
- /**
26
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
27
- **/
28
- export default config;
@@ -1,67 +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 type { ModuleFederationConfig } from '@nx/module-federation';
5
- import { join } from 'path';
6
-
7
- import baseConfig from './module-federation.config';
8
-
9
- const prodConfig: ModuleFederationConfig = {
10
- ...baseConfig,
11
- /*
12
- * Remote overrides for production.
13
- * Each entry is a pair of a unique name and the URL where it is deployed.
14
- *
15
- * e.g.
16
- * remotes: [
17
- * ['app1', 'http://app1.example.com'],
18
- * ['app2', 'http://app2.example.com'],
19
- * ]
20
- *
21
- * You can also use a full path to the remoteEntry.js file if desired.
22
- *
23
- * remotes: [
24
- * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
25
- * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
26
- * ]
27
- */
28
- remotes: [
29
- <%_ remotes.forEach(function(r) { _%>
30
- ['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],
31
- <%_ }); _%>
32
- ],
33
- };
34
-
35
- export default {
36
- output: {
37
- path: join(__dirname, '<%= rspackPluginOptions.outputPath %>'),
38
- publicPath: 'auto'
39
- },
40
- devServer: {
41
- port: <%= port %>,
42
- historyApiFallback: {
43
- index: '/index.html',
44
- disableDotRule: true,
45
- htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
46
- },
47
- },
48
- plugins: [
49
- new NxAppRspackPlugin({
50
- tsConfig: '<%= rspackPluginOptions.tsConfig %>',
51
- main: '<%= rspackPluginOptions.main %>',
52
- index: '<%= rspackPluginOptions.index %>',
53
- baseHref: '<%= rspackPluginOptions.baseHref %>',
54
- assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
55
- styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
56
- outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
57
- optimization: process.env['NODE_ENV'] === 'production',
58
- }),
59
- new NxReactRspackPlugin({
60
- // Uncomment this line if you don't want to use SVGR
61
- // See: https://react-svgr.com/
62
- // svgr: false
63
- }),
64
- new NxModuleFederationPlugin({ config: prodConfig }, { dts: false }),
65
- new NxModuleFederationDevServerPlugin({ config: prodConfig }),
66
- ],
67
- };
@@ -1,42 +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
- 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,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,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 for 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,39 +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 prodConfig = {
8
- ...baseConfig,
9
- /*
10
- * Remote overrides for production.
11
- * Each entry is a pair of a unique name and the URL where it is deployed.
12
- *
13
- * e.g.
14
- * remotes: [
15
- * ['app1', 'http://app1.example.com'],
16
- * ['app2', 'http://app2.example.com'],
17
- * ]
18
- *
19
- * You can also use a full path to the remoteEntry.js file if desired.
20
- *
21
- * remotes: [
22
- * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
23
- * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
24
- * ]
25
- */
26
- remotes: [
27
- <%_ remotes.forEach(function(r) { _%>
28
- ['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],
29
- <%_ }); _%>
30
- ],
31
- };
32
-
33
- // Nx plugins for webpack to build config object from Nx options and context.
34
- /**
35
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support for Module Federation
36
- * The DTS Plugin can be enabled by setting dts: true
37
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
38
- */
39
- module.exports = composePlugins(withNx(), withReact(), withModuleFederation(prodConfig, { dts: false }));
@@ -1,19 +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
- /**
17
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
18
- **/
19
- module.exports = moduleFederationConfig;
@@ -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(), '<%= browserBuildOutputPath %>');
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,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,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.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 for 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,16 +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
- };
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,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(), '<%= browserBuildOutputPath %>');
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,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,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.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 for 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,28 +0,0 @@
1
- import type { ModuleFederationConfig } from '@nx/module-federation';
2
-
3
- const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- /**
6
- * To use a remote that does not exist in your current Nx Workspace
7
- * You can use the tuple-syntax to define your remote
8
- *
9
- * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
10
- *
11
- * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
12
- * following content:
13
- *
14
- * declare module 'my-external-remote';
15
- *
16
- */
17
- remotes: [
18
- <%_ if (static) {
19
- remotes.forEach(function(r) { _%>
20
- "<%= r.fileName %>",
21
- <%_ }); } _%>
22
- ],
23
- };
24
-
25
- /**
26
- * Nx requires a default export of the config to allow correct resolution of the module federation graph.
27
- **/
28
- export default config;
@@ -1,40 +0,0 @@
1
- import { composePlugins, withNx } from '@nx/webpack';
2
- import { withReact } from '@nx/react';
3
- import { withModuleFederation } from '@nx/module-federation/webpack';
4
- import type { ModuleFederationConfig } from '@nx/module-federation';
5
-
6
- import baseConfig from './module-federation.config';
7
-
8
- const prodConfig: ModuleFederationConfig = {
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
- // Nx plugins for webpack to build config object from Nx options and context.
35
- /**
36
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support for Module Federation
37
- * The DTS Plugin can be enabled by setting dts: true
38
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
39
- */
40
- export default composePlugins(withNx(), withReact(), withModuleFederation(prodConfig, { dts: false }));
@@ -1,18 +0,0 @@
1
- import {composePlugins, withNx} from '@nx/webpack';
2
- import {withReact} from '@nx/react';
3
- import {withModuleFederation} from '@nx/module-federation/webpack';
4
- import type { ModuleFederationConfig } from '@nx/module-federation';
5
-
6
- import baseConfig from './module-federation.config';
7
-
8
- const config: ModuleFederationConfig = {
9
- ...baseConfig,
10
- };
11
-
12
- // Nx plugins for webpack to build config object from Nx options and context.
13
- /**
14
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support for Module Federation
15
- * The DTS Plugin can be enabled by setting dts: true
16
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
17
- */
18
- export default composePlugins(withNx(), withReact(), withModuleFederation(config, { dts: false }));
@@ -1,4 +0,0 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
2
- import { Schema } from './schema';
3
- export declare function hostGenerator(host: Tree, schema: Schema): Promise<GeneratorCallback>;
4
- export default hostGenerator;